C89和C99标准中可执行文件大小的差异

时间:2013-05-07 17:32:33

标签: c size nm

我使用GCC创建了一个可执行文件

$ gcc Q1.c -save-temps -std=c89 -o Q1
$ size Q1
text       data     bss     dec     hex filename
1509        264       8    1781     6f5 Q1

然后我这样做

$ gcc Q1.c -save-temps -std=c99 -o Q1
$ size Q1
text       data     bss     dec     hex filename
1544        264       8    1816     718 Q1

可能导致程序文字大小不一致的原因可能是什么原因?

1 个答案:

答案 0 :(得分:1)

没有具体原因。由于更严格的标准,可能会有不同的优化。在我的电脑上:

-> % gcc test.c -save-temps -std=c89
-> % size a.out 
   text    data     bss     dec     hex filename
   1093     568       8    1669     685 a.out
-> % gcc test.c -save-temps -std=c99 
-> % size a.out                     
   text    data     bss     dec     hex filename
   1093     568       8    1669     685 a.out

这是高度经验性的。使用-O标志甚至可以更改结果。