Почему существуют разные разделы для инициализированных и неинициализированных глобалов? - PullRequest
0 голосов
/ 19 октября 2011

Я читаю этот курс о структуре исполняемого файла, и в нем говорится, что в исполняемом файле есть три раздела данных:

  • секция кода & mdash; где хранятся инструкции
  • раздел данных
    • .data & mdash; хранит инициализированные глобальные данные
    • .bss & mdash; хранит неинициализированные глобальные данные
    • .rodata & mdash; хранит данные только для чтения, такие как литералы

Мой вопрос: почему проводится различие между инициализированными и неинициализированными глобальными данными?

(Мы используем C в классе, но я думаю, что это не зависит от языка.)

1 Ответ

1 голос
/ 19 октября 2011

Размер изображения. Образ программы должен содержать данные инициализации для .data, но не должен содержать .bss.

...