C编程新手。
在 gcc-std
中设置编译的 C 标准,例如gcc -std=c99
.
有可能知道当前设置了哪个 C 标准?
问问题
636 次
2 回答
4
在各种模式下定义了各种预处理器符号。您可以使用gcc -E -dM -x c /dev/null
来获取所有预定义的预处理器符号的转储。
在 C99 模式 (-std=c99
或-std=gnu99
) 下,符号__STDC_VERSION__
定义为199901L
。在 C11 模式下(使用-std=c11
or std=gnu11
),它是201112L
在严格的 C 模式下(-std=cXX
相对于-std=gnuXX
),符号__STRICT_ANSI__
被定义为1
于 2014-04-08T22:12:53.997 回答
2
您可以使用此程序打印默认值:
#include <stdio.h>
int main() {
#ifdef __STRICT_ANSI__
printf("c");
#else
printf("gnu");
#endif
#ifdef __STDC_VERSION__
#if __STDC_VERSION__ == 199901L
puts("99");
#elif __STDC_VERSION__ == 201112L
puts("11");
#else
puts("(unknown)");
#endif
#else
puts("90");
#endif
return 0;
}
于 2014-04-09T22:59:54.803 回答