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