#if #elif #else #endif
#if 条件1
代码段1
#elif 条件2
代码段2
...
#elif 条件n
代码段n
#else
代码段n+1
#endif
如果#if后面的常量表达式为true,则编译他所控制的代码.
#define MY_VERSION 1
#if MY_VERSION == 1
printf("my version 1\n");
#elif MY_VERSION == 2
printf("my version 2\n");
#else
printf("my version unknown\n");
#endif
这里因为MY_VERSION定义为1,那么编译后最终会打印”my version 1”.
# if defined(macro_name) #endif
如果macro_name定义过则返回真,用该函数则可以写比较复杂的条件编译指令如:
#if defined(macro1) || (!defined(macro2) && defined(macro3))
...
#elif defined(macro1)
...
#else
...
#endif
#ifdef #else #endif
#ifdef macro_name
代码段1
#else
代码段2
#endif
参考文章
#if, #elif, #else, #endif 使用