• C语言中的全局变量内存分配和初始化顺序


    内存分配:

    对于局部变量而言,内存分配的顺序和代码的顺序是一样的,但全局变量就不一定一样了。

    1)一般的编译器,对于初始化的全局变量,碰到之后就知道这是一个定义,会马上分配空间,如

    int ib =3;

    int ia =4;

    那么ia的地址就在ib之后

     

    2)对于没有初始化的全局变量,因为不知道是定义还是声明,所以要在扫描完所有代码之后才能决定,这个时候编译器会读符号表,然后看哪些变量没有分配空间,因为符号表是字母顺序的,所以这些变量的内存分配也是按照字母顺序来的,所以对于

    int ib;

    int ia;

    ia的空间在ib之前

     

    不同源文件间全局变量的初始化顺序:

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

  • 相关阅读:
    [转载]宇宙文明等级的划分标准
    常用的AJAX框架
    常用的AJAX框架
    【★】路由环路大总结!
    分销商城

    如何开始做外贸
    时间管理模型
    吕广渝:上帝视角看公司运营
    Java面试必问
  • 原文地址:https://www.cnblogs.com/dartagnan/p/2816860.html
Copyright © 2020-2023  润新知