全局变量危害
长期占用内存
全局变量生命周期长,程序运行期一直存在,始终占有那块存储区;
难以定位修改
全局变量是公共的,全部函数都可以访问,难以定位全局变量在哪里被修改,加大了调试的难度;
使函数理解
使用全局变量的函数,需要关注全局变量的值,增加了理解的难度,增加了耦合性;
初始化顺序
全局变量的初始化顺序不定,如果全局变量之间有依赖,有可能导致某些变量初始化失败呢,引起莫名其妙bug。
污染命名空间
全局变量会污染命名空间,在函数中局部变量会覆盖全局的值,会出现同一个变量名多个值的情况,造成困惑;
增加耦合性
修改全部变量会影响所有用到它的模块,不利于调试;
线程不安全
多线程中多全局变量的修改容易冲突,需要加锁;