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

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

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

Почитать на досуге:
https://stackoverflow.com/questions/1315926/gcc-em...
www.muppetlabs.com/~breadbox/software/tiny/teensy.html
Ответ написан
Комментировать
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Окей гугл
бинарный файл формата ELF
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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