VBGood网站全文搜索 Google

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

VB爱好者乐园(VBGood)

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

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

  [复制链接]
发表于 2006-7-10 03:13:13 | 显示全部楼层
注意6.0中
在Dim语句之前对该变量进行访问会出错……

把Dim放在分支中,主要是为了提示
该步骤会使用到这个变量
仅此而已……
回复 支持 反对

使用道具 举报

发表于 2006-7-10 11:51:04 | 显示全部楼层
不论 Dim 在什么位置,VB在编译时都会为变量分配内存。如果设置 Option Explicit ,要求必须声明时,在Dim语句之前对该变量进行访问会出错。为避免这种情况出现,所以通常把 Dim 语句放在过程的最顶端。有时为了使程序清晰明了,把一些只有在某分支才用的变量在分支里里声明,或有些在比较长的过程中非常不常用的变量,在临使用时声明。不管怎样,只要是声明了变量(包括 用Dim等声明语句及不设置 Option Explicit 而直接使用的隐含的声明变量),VB在编译时都会为变量分配内存。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-10 13:42:24 | 显示全部楼层
原帖由 superzmy 于 2006-7-10 03:13 发表
注意6.0中
在Dim语句之前对该变量进行访问会出错……

果然如此,太神奇了!!

把Dim放在分支中,主要是为了提示
该步骤会使用到这个变量
仅此而已……

有道理,我还以为是为了省内存呢
回复 支持 反对

使用道具 举报

发表于 2006-7-10 14:35:44 | 显示全部楼层
[quote]原帖由 VBProFan 于 2006-7-10 13:42 发表

果然如此,太神奇了!!

>如果设置 Option Explicit ,要求必须声明时,在Dim语句之前对该变量进行访问会出错。
这个神奇吗???

哪个VB 变量未被声明就可以随便使用(除非没有 Option Explicit )

VB在运行的时候才未变量分配内存,编译时怎么分配内存呢?....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-13 15:34:11 | 显示全部楼层
我原来一直以为Dim是不可执行的语句,现在看来不遇到Dim就不分配内存,就显得Dim语句是可以执行的一样,所以觉得神奇
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-13 16:39:20 | 显示全部楼层
如果Dim是可执行的,何不把dim与ReDim合二为一?

[ 本帖最后由 VBProFan 于 2006-7-13 16:40 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2006-7-13 17:01:22 | 显示全部楼层
嗯,应该是不会节省的

我一般是什么时候用到什么时候定义
回复 支持 反对

使用道具 举报

发表于 2006-7-13 22:32:06 | 显示全部楼层
呵呵
回复 支持 反对

使用道具 举报

发表于 2006-7-14 11:27:13 | 显示全部楼层
原帖由 VBProFan 于 2006-7-13 16:39 发表
如果Dim是可执行的,何不把dim与ReDim合二为一?


dim  是定义一个变量
redim 是重新分配数组
这两个怎么才能合在一起呢?

另外dim private public global 这几个变量的声明方式对内存占用是不一样的
要看怎么说,如果说看数据内容,当然都一样
但要看他的作用范围,作用范围不一样,他的数据内容也有差异,但这种差异并不体现在数据内容上

什么意思呢?...
打个比方, VB 的STRING 类型变量
直接获取数据内容一样,但如果直接进行内存读取就会发现变量头部做了手脚
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 17:45:21 | 显示全部楼层
我的意思是取消ReDim语句,当要改变数组的上下界时,直接dim A(2 To 5),而不用Redim A(2 To 5),这就是合二为一的意思
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-7-2 13:42

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