寫在前面:GCC支持C90, 不完全支持C99。在不指定C標准的情況下,GCC默認使用GNU C。用一個式子表示GNU C:
GNU C = C90 + GNU Extensions = C90 + (some features in C99 + some features in C11)
GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由GNU開發的編程語言編譯器。原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC很快地擴展,變得可處理C++。之后也變得可處理Fortran、Pascal、Objective-C、Java、Ada,以及Go與其他語言。
如下表,GCC至今(version 4.7)已支持4種C標准。注意有些標准是不完全支持的。
參考:Language Standards Supported by GCC
另外,GCC也提供了擴展的C標准(GNU C)。
參考:Extensions to the C Language Family
默認情況下,即在不加以上講到的編譯器選項的情況下,GCC使用-std=gnu89(版本高的話,可能是-std=gnu90)。
看個例子
ps: 我用的是wingw, gcc version 4.3.3
結束語:gcc對C語言的新標准(如C99,C11)還是不遺余力地支持的,不像MS。