为什么初始化和未初始化的全局变量有不同的部分?
我正在阅读有关可执行文件结构的课程,它说可执行文件中有三个数据部分:
- 代码部分 - 存储指令的地方
- 数据部分
- .data — 存储初始化的全局数据
- .bss — 存储未初始化的全局数据
- .rodata — 存储只读数据,例如文字
我的问题是,为什么要区分已初始化和未初始化的全局数据
(我们在课堂上使用 C,但我想这是一个与语言无关的主题。)
I'm reading this course on the structure of an executable and it says there are three data sections in an executable:
- code section — where the instructions are stored
- data section
- .data — stores initialized global data
- .bss — stores uninitialized global data
- .rodata — stores read-only data, such as literals
My question is, why is the distinction made between initialized and uninitialized global data?
(We use C in class, but I guess this is a language agnostic subject.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
图像尺寸。程序映像必须包含.data 的初始化数据,但不必包含.bss。
Image size. The program image has to contain the initialization data for .data, but it does not have to contain .bss.