#if/#if defined/#ifdef

阅读 153

2022-10-31


#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 使用​​


精彩评论(0)

0 0 举报