C++ 对全局变量和静态变量作初始化的先后顺序有什么要求或约定

时间:2022-12-24 19:40:40
C++ 对全局变量和静态变量作初始化的先后顺序有什么要求或约定
感觉很重要
是根据main所在文件的#include语句展开后的变量申明的顺序来决定的吗,还是连接时候的顺序决定的,还是无规律各编译器自行确定?

12 个解决方案

#1


按声明顺序吧

#2


up

#3


好像以前有个说法是未定义的,但不知新标准的规定如何,关注。

#4


可以肯定的说是按你定义变量的顺序。

#5


程序是在从main开始执行,而全局变量是在main之前进行初始化的!
初始化顺序是按定义时的顺序来的!

#6


静态变量的初始化顺序未定义,所以程序不能依赖初始化顺序

#7


标准有规定的,所有的非局部变量的初始化是按照声明顺序进行的。

#8


没有顺序吧

#9


统一编译单位内是按照声明顺序,但不同编译单位则属于未定义!

#10


若是函数内部的静态变量则在函数第一次运行的时候初始化

#11


楼主应该看看作用域这一节的知识,就可以对自己提的问题,有全面的了解了!

#12


同意birth_chen(流星)

#1


按声明顺序吧

#2


up

#3


好像以前有个说法是未定义的,但不知新标准的规定如何,关注。

#4


可以肯定的说是按你定义变量的顺序。

#5


程序是在从main开始执行,而全局变量是在main之前进行初始化的!
初始化顺序是按定义时的顺序来的!

#6


静态变量的初始化顺序未定义,所以程序不能依赖初始化顺序

#7


标准有规定的,所有的非局部变量的初始化是按照声明顺序进行的。

#8


没有顺序吧

#9


统一编译单位内是按照声明顺序,但不同编译单位则属于未定义!

#10


若是函数内部的静态变量则在函数第一次运行的时候初始化

#11


楼主应该看看作用域这一节的知识,就可以对自己提的问题,有全面的了解了!

#12


同意birth_chen(流星)