楼主发表于:2009-08-19 09:52:39大家好,最近看了一个嵌入式工程代码。 发现模块之间的全局变量很多,而且调用特别频繁。 问题:请问各位高手,这样全局变量多会引起什么问题? #1楼 得分:0回复于:2009-08-19 10:01:38http://zhidao.baidu.com/question/88534681.html
#3楼 得分:0回复于:2009-08-19 10:07:06引用 2 楼 hyram 的回复:
#4楼 得分:0回复于:2009-08-19 11:02:57提高了模块间的耦合性,对后期维护、扩展和复用都带来极大影响。 比如说你想在新的系统中复用旧系统的模块,你就会发现由于全局变量的存在,单个旧模块极难单独剥离出来; 呵呵,这些问题,你维护过一段时间这些代码就有体会了 如果对此类问题感兴趣,推荐去看看《代码大全2》,里面对全局变量的使用有很好的建议; #6楼 得分:0回复于:2009-08-19 23:09:24好处是:便于传递参数,数据能在整个程序中共享。不用很麻烦的传递参数,也省去了传递参数的时间,会减少程序的运行时间。 因此一般的建议是尽量不用或少用局部变量。 #7楼 得分:0回复于:2009-08-19 23:15:581楼说的似乎不是真正的麻烦,不知道那个文章写手是谁,不过个人比较赞同2F的观点。至于6楼说的,我不认为“传递参数”是一个麻烦,比较起强耦合带来的麻烦来,传递参数实际上完全不能算有麻烦 #8
楼 得分:0回复于:2009-08-19
23:18:01要记住程序的“正确性”肯定是第一重要的,传递参数如果说有性能损失的话(我个人不认为有多少性能损失),和正确性比较起来实在是微不足
道的。而全局变量带来的模块间的强耦合是造成程序不正确的很大的一个因素 #9楼 得分:0回复于:2009-08-19 23:27:13引用楼主 ctn4611 的回复: 发现模块之间的全局变量很多,而且调用特别频繁。 问题:请问各位高手,这样全局变量多会引起什么问题? 全局变量太多会增加代码维护的困难,也加大了内存的用量,增大程序的体积,某个地方出错,会造成很多地方出错,欲修改某个地方,可能会造成很多地方都要跟着修改。 更多勋章 #10楼 得分:0回复于:2009-08-19 23:38:16最明显的一个问题就是耦合性被增强,代码的维护和可移植性差。
#12楼 得分:0回复于:2009-08-20 10:00:31模块间全局变量太多,肯定是模块耦合太多,不利于程序稳定,当出问题的时候也不容易定位问题 #13楼 得分:0回复于:2009-08-20 10:03:27而且如果存在多个模块线程同时修改全局变量的话,也容易造成冲突,需要加线程锁,这样程序的复杂性就高了 #14楼 得分:0回复于:2009-08-20 10:04:01全局变量的值可能在你意想不到的地方改变,这点在多线程编程中显现的尤为突出。 #15楼 得分:0回复于:2009-08-20 17:31:04耦合性变高。不提倡用全局变量。如果你的程序没有全局变量。说明你是高手。否则。只能说程序写的不咋地。 |
|