全局变量危害

长期占用内存

全局变量生命周期长,程序运行期一直存在,始终占有那块存储区;

难以定位修改

全局变量是公共的,全部函数都可以访问,难以定位全局变量在哪里被修改,加大了调试的难度;

使函数理解

使用全局变量的函数,需要关注全局变量的值,增加了理解的难度,增加了耦合性;

初始化顺序

全局变量的初始化顺序不定,如果全局变量之间有依赖,有可能导致某些变量初始化失败呢,引起莫名其妙bug。

污染命名空间

全局变量会污染命名空间,在函数中局部变量会覆盖全局的值,会出现同一个变量名多个值的情况,造成困惑;

增加耦合性

修改全部变量会影响所有用到它的模块,不利于调试;

线程不安全

多线程中多全局变量的修改容易冲突,需要加锁;

原文地址:https://www.cnblogs.com/huahua-1022/p/5891655.html