#if/#if defined/#ifdef

来源:互联网 发布:安卓无人机app源码 编辑:程序博客网 时间:2024/06/05 17:32

#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