是否有预处理器宏来检测跨平台的C99?
C ++有一个__cplusplus
预处理器定义,可以让你检测版本。 C有什么相似之处吗?
我希望它可以在XCode,GCC和Visual Studio版本中移植。
根据维基百科关于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
您可以测试宏__STDC_VERSION__
的值(注意在开头和结尾有两个下划线),对于C99兼容平台,它应该大于或等于199901L
。
C11(ISO / IEC 9899:201x)§6.10.8.1 强制性宏
__STDC_VERSION__
整数常量201ymmL
。
在脚注中:
该宏未在ISO / IEC 9899:1990中规定,
199409L
在ISO / IEC 9899 / AMD1:1995中指定为199409L
,在ISO / IEC 9899:1999中指定为199409L
。 目的是这将保持long int
类型的整数常量,随着本国际标准的每次修订而增加。