C ++有一个__cplusplus
预处理器定义,可以让你检测版本。 C有什么类似的吗?
我希望它可以在XCode,GCC和Visual Studio版本中移植。
答案 0 :(得分:11)
根据维基百科上的文章C99
A standard macro __STDC_VERSION__ is defined with value 199901L to indicate that C99 support is available
#if __STDC_VERSION__ >= 199901L
/*C99*/
#else
/*Not C99*/
#endif
答案 1 :(得分:4)
您可以测试宏__STDC_VERSION__
的值(注意在开头和结尾有两个下划线),对于C99兼容平台,它应该大于或等于199901L
。< / p>
C11(ISO / IEC 9899:201x)§6.10.8.1强制性宏
__STDC_VERSION__
整数常量201ymmL
。
在脚注中:
此宏未在ISO / IEC 9899:1990中指定,并被指定为
199409L
in ISO / IEC 9899 / AMD1:1995和ISO / IEC 9899:1999中的199901L
。意图就是这样 保持类型long int
的整数常量,随着本国际标准的每次修订而增加。