一般来说 gcc 3.0 以上都是支持 C99 的,但是编译的时候得加上 -std=c99
检测 gcc 是否支持 C99 方法,新建 c99.c 文件,内容如下
#include <stdio.h>
int main(void) {
#ifdef __STDC__
printf("%s\n", "stardard C");
#endif
#ifdef __STDC_VERSION__
// 正确输出结果应该是 long 型,
// 这里本应该用 %ld, 但命令行运行不会返回提示而需要手动运行一次;
// 故用 %d 让其警告而不用再次运行编译后程序即可查看结果
printf("%d\n", __STDC_VERSION__);
#endif
return 0;
}
然后命令行执行:
gcc -std=c99 -o c99 c99.c
终端返回结果如下:
c99.c:12:21: warning: format specifies type 'int' but the argument has type
'long' [-Wformat]
printf("%d\n", __STDC_VERSION__);
~~ ^~~~~~~~~~~~~~~~
%ld
<built-in>:327:26: note: expanded from here
#define __STDC_VERSION__ 199901L
^~~~~~~
1 warning generated.
执行 c99 程序返回:
stardard C
199901