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.