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

发布于 2024-12-11 03:38:41 字数 325 浏览 1 评论 0原文

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

  • 代码部分 - 存储指令的地方
  • 数据部分
    • .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫烠⑼条掵仅有一顆心 2024-12-18 03:38:41

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

Image size. The program image has to contain the initialization data for .data, but it does not have to contain .bss.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文