您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-12 原文发表:2007-08-31 人气:4 来源:未知

据说,如果过程能够2次或多次引用同样的内存地址,那么过程就会包含别名数值。一个典型的例子如下:

Dim g_GlobalVariable As Long

...

Sub ProcWithAliases(x As Long)

x = x 1

逆风编程精品

g_GlobalVariable = g_GlobalVariable 1

End Sub

如果传递给这个过程g_GlobalVariable变量,则将通过一个直接引用以及x参数两种方式修改变量的数值2次。

别名数值经常是不良编程习惯的产物,对于程序优化有害无益。事实上,如果能够完全确认应用程序从来没有使用到别名变量,就可以打开"Assume No Aliasing"高级编译选项,这将告知编译器没有过程可以修改同一内存地址,使编译器产生更加有效率的汇编代码。更特别的是,编译程序将试图缓冲这些数据到CPU的寄存器中,从而明显地加速了程序运行。

总结一下,当遇到以下情况时,就不会有别名数值:(1) 过程不引用任何全局变量 (2) 过程引用了全局变量,但从来不通过ByRef参数类型传递同一变量给过程 (3) 过程含有多个ByRef参数类型,但从来不传递同一变量到其中的2个或者多个之中。

相关文章

无闪烁地快速附加字符串到TextBox控件
编写快速高效的VB程序
用VB设计MSN信息群发软件
如何开发一个属于自己的编程语言开发工具
用VB设计一个定时闹钟程序
几行VB代码拿下注册表
用Visual Basic自编小游戏
用VB写的一个组件,实现添加系统用户,并添
用VB设计更换屏幕保护的程序
用VB编写“红绿灯”程序
VB中OLE调用的优化方法
妙用Replace函数替代字符串连接操作符
从头开始删除集合项目
快速找到选中的OptionButton
另辟蹊径处理字符串中的字符:字节数组法
快速初始化Variant和String类型数组
表单及控件的引用阻止了表单的卸载
用Mid$命令超速字符串添加操作
减少DoEvents语句的数量
精用Boolean表达式,让代码再减肥

相关评论


本文章所属分类:首页 VB

  热门关键字: