Почему пустая программа на C занимает 6 килобайт?

Язык Си проектировался как близко сопоставимый с машинными инструкциями. Некоторые утверждают, что программировать на нём почти так же эффективно, как на ассемблере. Я новичок в этом языке и решил провести небольшой эксперимент, чтобы посмотреть сколько займёт пустая программа со следующим кодом:
int main () {
    return 0;
}

Компилятор gcc 4.4.7 на Red Hat 6.7 создаёт бинарник в 6307 байт.
Насколько я понимаю, это гораздо больше, чем занимают аналогичные инструкции на ассемблере.
Вопрос: чем занимается оставшееся пространство и можно ли это как-то конфигурировать?
На всех ли платформах и компиляторах аналогичная ситуация? Как она решается, например, на микроконтроллерах, где памяти меньше?
  • Вопрос задан
  • 324 просмотра
Пригласить эксперта
Ответы на вопрос 3
Дизасемблируйте и посмотрите что там внутри программы :)
Ответ написан
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
Окей гугл
бинарный файл формата ELF
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы