为什么初始化和未初始化的全局变量有不同的部分?

时间:2011-10-19 18:14:08

标签: language-agnostic executable

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

  • 代码部分 - 存储说明的地方
  • 数据部分
    • .data - 存储已初始化的全局数据
    • .bss - 存储未初始化的全局数据
    • .rodata - 存储只读数据,例如文字

我的问题是,为什么在初始化和未初始化的全局数据之间进行区分?

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

1 个答案:

答案 0 :(得分:1)

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