Я создал файл, содержащий следующую строку:
int main() { return 0; }
После компиляции я с удивлением обнаружил, что бинарник этой простой программы составляет 8328 байт! Что здесь происходит и что делает двоичный файл в этих 8328 байтах? Наверняка эта программа может быть выражена всего в нескольких строчках ассемблера.
Примечание. Я скомпилировал это со следующей строкой:
g++ main.cpp
Моя версия g++ g++ (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1