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

Language agnostic 为什么初始化全局变量和未初始化全局变量有不同的部分?,language-agnostic,executable,Language Agnostic,Executable,我正在读这门关于可执行文件结构的课程,它说在可执行文件中有三个数据部分: 代码部分-存储指令的地方 数据部分 .data-存储初始化的全局数据 .bss-存储未初始化的全局数据 .rodata-存储只读数据,例如文字 我的问题是,为什么要区分初始化和未初始化的全局数据 (我们在课堂上使用C,但我想这是一门语言不可知的学科。)图像大小。程序映像必须包含.data的初始化数据,但不必包含.bss

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

  • 代码部分-存储指令的地方
  • 数据部分
    • .data-存储初始化的全局数据
    • .bss-存储未初始化的全局数据
    • .rodata-存储只读数据,例如文字
我的问题是,为什么要区分初始化和未初始化的全局数据


(我们在课堂上使用C,但我想这是一门语言不可知的学科。)

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