Предположим, у меня есть следующая программа:
#include <stdio.h>
int main()
{
printf("This is a sample C program.\n");
return 0;
}
Если я скомпилирую его с помощью компилятора Microsoft (cl.exe /O1 sample.c
) на 32-разрядной машине Windows 7, он выдаст исполняемый файл размером 44 КБ.
Если я скомпилирую его с помощью компилятора GNU (gcc sample.c
) на 64-разрядной машине CentOS, он выдаст исполняемый файл размером 6 КБ.
Вообще говоря, почему такая маленькая разница в размерах файлов? Почему Windows 44 КБ просто печатает строку и завершает работу?