首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么全局变量不安全?解决办法

2012-03-17 
为什么全局变量不安全?老师讲c语言时说全局变量不安全,可是并没说清楚本周做汉字行编辑程序时,发现用主控

为什么全局变量不安全?
老师讲c语言时说全局变量不安全,可是并没说清楚  
        本周做汉字行编辑程序时,发现用主控模块editor调用其他子模块时要输入含多参数,比如:各种指针,缓冲数组,非常麻烦。
        所以我想知道:        
        (1)使用全局变量为什么不安全?最好能举个例子
        (2)有没有一种既让模块之间传递数据少,又保证安全的做法?

[解决办法]
全部变量你几乎可以在任意地方修改它
如果你的程序很大, 几万行, 几十个文件, 你知道你在哪修改了这个变量?
你知道修改了这个变量对后面使用有何影响?

2)函数... 参数, 返回值..
[解决办法]
公共财物不安全,看看公共电话亭就知道。自家财物相对就安全,虽然也有强盗,小偷上门,毕竟少啊。

全局变量也如此。关键在于,没有办法在当前(写这个变量的)时刻判断今后谁,多少个代码对它进行读写操作。由此引起了研究一小块代码时必须调查清楚全局状况,偶的脑细胞呀!局部变量有一个受限制的范围,可对它访问的代码你一眼就看完了。成员数据在类范围内,就那么几个方法可以访问,也是有限。全局变量呢,不记住所有访问点,可不敢轻易动手改程序的。
[解决办法]
基本原则:能声明成static的全局变量尽量用static来修饰,同时注意多线程访问同一个全局变量的同步问题。

[解决办法]
变量应该尽量缩小它的范围。
除了安全性,另外还减少重名冲突。
比如你和别人共同开发,都用了一个全局变量。
等到整合的时候才发现,怎么办?
最好的办法就是把那个变量限制在自己使用的范围内。

热点排行