ncxj 发表于 2015-10-16 08:14:41

[已解决]全局变量,静态变量的差异

本帖最后由 ncxj 于 2015-10-17 13:15 编辑

static静态变量,是实验性特性.我理解为有一定的不确定性质.
既然只是实验性,我们用在程序中,是不是不如直接使用全局变量来的稳妥.所以我一般不使用.

只是我想请问一下大家,相对于使用全局变量,使用静态变量能获得哪些方面的优势?比如代码速度或者别的什么.

虫子樱桃 发表于 2015-10-16 08:58:27

本帖最后由 虫子樱桃 于 2015-10-16 09:08 编辑

请参考http://www.autoitx.com/forum.php?mod=viewthread&tid=36679&highlight=
譬如,我们做一个记录执行次数的函数

Func _ExecuteCounter()
        Static $num = 0
        $num+=1
        Return $num
EndFunc

MsgBox(0,'',_ExecuteCounter())
MsgBox(0,'',_ExecuteCounter())
MsgBox(0,'',_ExecuteCounter())
MsgBox(0,'',_ExecuteCounter())

简单来讲,static可以看作函数内部的私有定义,而Global之类的虽然可以实现,但并不是“私有”的,可以被其他地方修改,造成程序的不确定性,所以一般都是在程序开始进行Global的申明。

ncxj 发表于 2015-10-17 13:13:33

谢谢,好像是这样了
页: [1]
查看完整版本: [已解决]全局变量,静态变量的差异