一、
看了http://blog.youkuaiyun.com/zy799894671/article/details/7742691,总结一下:
使用全局变量的优点是:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。
使用全局变量也有许多缺点:
(1)全局变量保存在静态存贮区,生存期比较长,因此过多的全局变量会占用较多的内存单元。
(2)全局变量破坏了函数的封装性能,破坏了函数的独立性,降低了该函数的可移植性。
(3)全局变量使函数的代码可读性降低。全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。
针对这三缺点,我只想说,并不是所有项目的编程都要尽量避免使用全局变量,这应该还要根据实际情况来调整使用的尺度。
首先(1)全局变量有很多种,有只是一个标志或计数值,也有数组或结构体这样的一段内存空间,还有一些全局的函数等
使用全局变量,在有些时候会让你的程序更加简洁、简单,维护更方便一些。我觉得,随着硬件设备的性能越来越好,除了在一些系统资源比较紧缺的地方(如服务器),全局变量从空间角度还是可以放心去用的,如计数值、标记,才占一个系统单元位,然后全局的一段空间(数组,结构体)这种也是可用的,但注意不要太多,太大,毕竟这个相对来说还是稍微会占一点空间。然后就是全局函数,只用重复使用度高的全局函数其存在意义也是很好的。
(2)这个确实如此,但实时,并不是所有函数都有很高的可移植要求,也不是所有函数都要封装,所以这个就看实际情况了,以及编程者的取舍了。
(3)这个问题,如果程序只是写给自己看(不是大型项目多人参于做一个系统,需要给别人看自己的代码的话),然后就是再如果编程人员觉得自己对全局变量的管理有把握的话,这个问题,在小型项目中还是可以不用太刻意去减少全局变量的使用的。其次就是,这全局变量最好是有可空的修改入口,尽量是多读少写的全局变量。如果是多写的全局变量,那就要注意其使用的安全性了。
//************************下面是直接引用链接文章中的内容(备份记录免迷路)*****************************//
二、http://blog.youkuaiyun.com/sepnineth/article/details/8206245,初始化顺序问题
1 同一份文件里的全局变量,初始化的顺便跟声明顺序有关(也不能断定谁先谁后,视编译器而定,相关介绍编译,链接相关的书籍是xxx)
2 不同文件里的全局变量,无法确定初始化顺序
3 尽量不要使用有依赖的全局变量初始化。
4 访问数据,尽量包装成一个函数访问的习惯。
三、http:(技术防御)//(技术防御)blog.(技术防御)sina.com.(技术防御)cn/s/blog_88cbbb7301011hou.html减少使用的一点建议
一个子程序与外界的直接联系越少,则内聚性越好,而与外界联系,就是全局变量和参数,所以参数和全局变量越少越好,否则程序很难维护,可读性也不高。而且,全局变量占用固定地址不变,在函数中,或局部要读取它时还得到外界去找,而且在一个大点的程序中如果大量使用全局变量会降低程序的可读性,而且占用了大量的有限空间,降低运行速度。
全局变量有些时候是无法避免的,只能尽量减少全局变量。我能想到的主要有三个方面:
1、通过函数参数传递数据或指针。对于回调函数,通常有一个参数是自定义的数据指针,可以利用这个参数传递类指针或者自定义一个结构的指针。
2、只在某一个函数中使用的变量可以定义为局部静态变量(在函数内部定义,前面加static修饰)。
3、把全局变量定义成一个结构,定义一个全局的结构体变量。
最后引用别人的一句话:千万不要犯教条主义错误。了解全局变量,然后尺度自己把握!
最最后是一些大神的总结:ht(技术防御)tps://(技术防御)www.zhi(技术防御)hu.com/question(技术防御)/30257364?sort=(技术防御)created