写在前面: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。