事实上,除了在同一个文件定义的全局对象的初始化顺序是按照定义次序来进行的之外,对于不同编译单元的全局变量,其初始化的顺序没有任何的保证。
因此,对不同编译单元里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。
int a = 5;int b = a;
如果a和b定义在同一个文件里,那没什么问题,结果b等于5.
如果a和b定义在不同的文件里,就不能保证b也等于5,也就是说不能保证a先初始化。
本文共 256 字,大约阅读时间需要 1 分钟。
事实上,除了在同一个文件定义的全局对象的初始化顺序是按照定义次序来进行的之外,对于不同编译单元的全局变量,其初始化的顺序没有任何的保证。
因此,对不同编译单元里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。
int a = 5;int b = a;
如果a和b定义在同一个文件里,那没什么问题,结果b等于5.
如果a和b定义在不同的文件里,就不能保证b也等于5,也就是说不能保证a先初始化。
转载于:https://www.cnblogs.com/dongerlei/p/5611521.html