全局变量的优缺点及为什么要少用全局变量
Posted Dontla
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局变量的优缺点及为什么要少用全局变量相关的知识,希望对你有一定的参考价值。
全局变量 对于程序员来说,是程序 “同步”的一种最方便的 方式,我相信大多数的程序员刚开始都是使用全局变量来实现“同步”操作的,但是随着我们 编程理念的升华,我们会发现,原来全局变量不是我们想象的只有好用,而没有缺点。
优点:
1)全局可见,任何 一个函数或线程都可以读写全局变量-同步操作简单。
2)内存地址固定,读写效率比较高。
缺点:
1)全局变量存放在静态存储区,系统需要为其分配内存,一直到程序结束,
才会释放内存,这一点就局部变量的动态分配,随用随从栈中申请,用完(函数调用完毕)就释放。2)影响函数的封装性能:我们肯定是希望我们写的函数具有重入性,就如一个黑盒子一般,只 通过函数参数就能得到返回,内部
实现要独立,但是如果函数中使用了全局变量,这势必就破坏了函数的封装性,会造成对全局变量的依赖。3)降低函数的移值性,原因同上。
4)降低代码的可读性,这也意味着系统维护会不方便,因为一个全局变量可能会出现程序中的各个环节,函数的
执行也会根据环境变化而变化,所以调试会不太方便。5)全局变量的读写,可能会延迟,这主要是体现在“写”操作上,由于写操作,一般需要2个周期操作,所以有可能会出现,这边没写完时,那边已经读了,结果
读到的不是最终值,这个是一个概率事件,概率 很小,但是并不代表没有。
小结:上面的说的缺点,可能有些人会觉得有些矫情,或者概率很小, 这个要分情况讨论的,如果对于一个非常简单的程序来说,代码量少,
功能也少,那全局变量无疑是最适合的同步方式。但是对于代码量大,功能多,逻辑又复杂的系统来讲,“稳定”来源于方方面面,其中就需要严谨和方便维护,所以不适用全局变量能够大大的避免出bug,方便后期维护,这个时候就需要考虑下,尽量少用全局变量
以上是关于全局变量的优缺点及为什么要少用全局变量的主要内容,如果未能解决你的问题,请参考以下文章