VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: VBProFan

这样来用Dim真的能节省内存吗?

  [复制链接]
发表于 2006-7-15 15:05:57 | 显示全部楼层
呵,这种问题的讨论简直挖到了语言的内部,这个贴真是好贴,值得注意这个问题.......太好了...这些就是精华....
回复 支持 反对

使用道具 举报

发表于 2006-7-15 15:23:24 | 显示全部楼层
不知道大家在学习VB前有没有玩过GBasic(也就是文曲星里的编程)
我可是玩GBasic出身的。
在GBasic里,定义一个变量根本不用什么Dim
直接是A%=1或B$="str"

在VB里,
Private Sub Form_Click()
A=5
print A
End Sub



Private Sub Form_Click()
Dim A As Integer
A=5
print A
End Sub

的效果是一样。

所以,我觉得VB里其实和GBasic里一样
只要你给一个新的变量名赋值,如果这个变量名没有通过Dim声明,就会自动声明一次。
但在VB里,如果直接用 Debug.Print A 来显示,此时A的类型应该是Variant类型的吧。

[ 本帖最后由 redraiment 于 2006-7-15 15:31 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-19 17:55:42 | 显示全部楼层
文曲星是GVBasic吧?GBASIC是小霸王学习机的。我都玩过。我怀疑MS拿什么ReDim来忽弄我们的,根本没必要存在ReDim语句
回复 支持 反对

使用道具 举报

发表于 2006-7-20 10:37:20 | 显示全部楼层
楼上,我不明白你到底什么意思
你的意思到底是不是这样:
Dim a() As Long
Dim a(10) As Long
第二句不用redim a(10) as long 而是用dim。。。
但你觉得这样行吗?
回复 支持 反对

使用道具 举报

发表于 2006-7-30 18:52:59 | 显示全部楼层
在VB6里面,dim是不执行的,这在很多编程书里都有。不信你可以设置断点,在Dim上面肯定不能设置。VB6调试时的编译方法应该是运行到一个函数的开头时才编译,不信你在一个函数里故意写一点编译错误的东西,再运行,到运行到这个函数时才会出错
回复 支持 反对

使用道具 举报

发表于 2006-7-30 23:55:01 | 显示全部楼层
原帖由 VBProFan 于 2006-7-8 10:02 发表
经常看到有些高手写的程序是这样的:
If ... Then
  dim a as byte
  ...
Else
...
End If
意思就是如果某条件成立,才给a分配内存。
我觉得这样做好别扭啊,我习惯于把所有的dim语句全部堆在子程序的开 ...


你以为vb6还是简单的解析执行?
vb也有预编译和编译了~~呵呵~~~~
回复 支持 反对

使用道具 举报

发表于 2006-7-31 00:18:33 | 显示全部楼层
原帖由 acme_pjz 于 2006-7-30 18:52 发表
在VB6里面,dim是不执行的,这在很多编程书里都有。不信你可以设置断点,在Dim上面肯定不能设置。VB6调试时的编译方法应该是运行到一个函数的开头时才编译,不信你在一个函数里故意写一点编译错误的东西,再运行, ...


不能设置断点不代表不执行吧!
回复 支持 反对

使用道具 举报

发表于 2006-7-31 00:25:44 | 显示全部楼层
原帖由 VBProFan 于 2006-7-14 17:45 发表
我的意思是取消ReDim语句,当要改变数组的上下界时,直接dim A(2 To 5),而不用Redim A(2 To 5),这就是合二为一的意思


合而为一并非好事:

一来 不清晰
二来 效率肯定不高,为什么会有 整型 长整型 单精度 等类型之分 ?!! 不无道理的!
回复 支持 反对

使用道具 举报

发表于 2006-7-31 15:43:43 | 显示全部楼层
已经解决掉了,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-31 19:43:44 | 显示全部楼层
原帖由 VB爬虫 于 2006-7-31 00:25 发表


合而为一并非好事:

一来 不清晰
二来 效率肯定不高,为什么会有 整型 长整型 单精度 等类型之分 ?!! 不无道理的!

您的意思是不是Redim相当于变长的String、Dim相当于定长的String?那您能讲一下Redim和Dim在分配内存时有什么区别吗?谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-6-29 01:59

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表