【发布时间】:2011-12-20 17:05:07
【问题描述】:
假设我有以下程序:
#include <stdio.h>
int main()
{
printf("This is a sample C program.\n");
return 0;
}
如果我在 Windows 7 32 位机器上使用 Microsoft 编译器 (cl.exe /O1 sample.c) 编译它,那么它会输出一个 44 KB 的可执行文件。
如果我在 CentOS 64 位机器上使用 GNU 编译器 (gcc sample.c) 编译它,那么它会输出一个 6 KB 的可执行文件。
一般来说,为什么这个小程序的文件大小会有这么大的差异呢?为什么 Windows 44 KB 只是打印一行并退出?
【问题讨论】:
-
您可以通过将代码更改为 printf("%f", 1.23); 来查看差异;
标签: c compiler-construction executable exe elf