какая польза от сегмента bss? - PullRequest
0 голосов
/ 20 января 2012

я знаю, что сегмент bss содержит неинициализированные переменные, которым будет присвоено 0 в качестве начального значения, но почему мы не просто используем сегмент данных для их хранения?

Я прочитал, что это ускоряет выполнение, потому что загрузчик os инициализирует все эти переменные одновременно, вызывая memset, однако я не очень уверен, потому что загрузчик может вызвать memset, чтобы также инициализировать их в сегменте данных!

1 Ответ

2 голосов
/ 20 января 2012

Потому что у вас может быть огромный набор неинициализированных значений. Вам нужно будет заполнить двоичный файл нулями (или любым другим значением, если на то пошло, но должно быть что-то ), если вы собираетесь использовать раздел данных для этой цели. Представьте себе добавление мегабайта нулей в исполняемый файл ...

...