Question

I made an Executable using GCC

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

and then i do this

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

What might have caused a differrence in the text size of the program, what could be the possible reasons?

Était-ce utile?

La solution

There is no specific reason. Maybe different optimizations due to stricter standard. On my computer:

-> % 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

This is highly empirical. Maybe using -O flags even changes the results.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top