C99有#define吗?

我想用C99做一些事情,否则以另一种方式执行。 要检查的#define是什么?

 #ifdef C99 ... #else ... #endif 

没有特定的#define值。 只需检查__STDC_VERSION__并自行定义! 😉

 #if __STDC_VERSION__ >= 199901L /* C99 code */ #define C99 #else /* Not C99 code */ #endif #ifdef C99 /*My code in C99 format*/ #else /*My code in C99 format*/ #endif 

编辑:一个更通用的片段, 从这里开始 。 我刚刚更改了已定义的名称,以防您在代码中大量使用它们:

 #if defined(__STDC__) # define C89 # if defined(__STDC_VERSION__) # define C90 # if (__STDC_VERSION__ >= 199409L) # define C94 # endif # if (__STDC_VERSION__ >= 199901L) # define C99 # endif # endif #endif 
 #if __STDC_VERSION__ == 199901L /* C99 */ #else /* not C99 */ #endif 

如果要测试C99及更高版本,请将==更改为>=