【问题标题】:Why are there different sections for initialized and uninitialized globals?为什么初始化和未初始化的全局变量有不同的部分?
【发布时间】:2011-10-19 18:14:07
【问题描述】:

我正在阅读有关可执行文件结构的这门课程,它说可执行文件中有三个数据部分:

  • 代码部分——存储指令的地方
  • 数据部分
    • .data — 存储初始化的全局数据
    • .bss — 存储未初始化的全局数据
    • .rodata — 存储只读数据,例如字面量

我的问题是,为什么要区分已初始化和未初始化的全局数据?

(我们在课堂上使用 C,但我想这是一个与语言无关的主题。)

【问题讨论】:

    标签: language-agnostic executable


    【解决方案1】:

    图像大小。程序映像必须包含 .data 的初始化数据,但不必包含 .bss。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 2011-12-21
      • 1970-01-01
      • 2011-12-09
      相关资源
      最近更新 更多