当前位置:   article > 正文

C++全局变量内存分配和初始化顺序_c++全局变量初始化顺序

c++全局变量初始化顺序

C++全局变量内存分配和初始化顺序

1.局部变量规则

局部变量是在栈空间上,内存分配的顺序和代码的顺序是一致的

2.全局变量规则

2.1 初始化的全局变量

一般来说,对于初始化的全局变量,编译器遇到之后知道这是一个定义,会马上分配空间,例如:
int ib = 10;
int ia = 10;
这个分配的结果是:ia的地址在ib后面

2.2 未初始化的全局变量

对于未初始化的全局变量,编译器遇到之后不知道是声明还是定义,所以要在扫描完所有代码之后才能决定,这个时候编译器会读符号表,然后看哪些变量没有分配空间,因为符号表是字母顺序的,所以这些变量的内存分配也是按照字母顺序来的,例如:
int ib;
int ia;
这个分配的结果是:ia的地址在ib前面

3.多文件全局变量规则

对于全局变量而言,除了在同一个文件定义的全局对象的初始化,是按照定义次序来进行的之外,其他全局或静态变量之间的初始化次序没有任何保障的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/106434
推荐阅读
相关标签
  

闽ICP备14008679号