最近项目组出现了一个奇怪的bug,程序行为异常,但从逻辑上又找不到什么缺陷。最后单步发现,是一个全局变量使用时未初始化。这就纳闷了,明明在定义时使用了初始化啊。网上找了下资料,结合代码发现,该全局变量依赖另一个全局变量的初始化,遂整理了全局变量初始化的相关问题:
1 同一份文件里的全局变量,初始化的顺便跟声明顺序有关(也不能断定谁先谁后,视编译器而定,相关介绍编译,链接相关的书籍是xxx)
2 不同文件里的全局变量,无法确定初始化顺序
3 尽量不要使用有依赖的全局变量初始化。
4 访问数据,尽量包装成一个函数访问的习惯。