3

我使用 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

什么可能导致程序的文本大小不同,可能的原因是什么?

4

1 回答 1

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标志甚至会改变结果。

于 2013-05-07T17:51:14.347 回答