背景问题
最近同事项目中遇到一个问题,就是在main函数未启动之前,就出现崩溃。具体现场情况大致是使用了一个map,但这个map的insert操作直接导致崩溃。最终定位的原因,是map的定义是放到了另一个编绎单元之中,而使用map的时候,该map对象还未进行初始化。这是全局变量的初始化顺序问题,即是用到某个变量的时候,它其实还未初始化。
问题简化
知识点:
1、全局变量的初始化,是在main函数之前。
2、不同编绎单元的全局变量,初始化有先后顺序之分。
下面看两段代码即可比较明确该问题
test1.cpp
|