0%

C条件编译

C条件编译

http://blog.sina.com.cn/s/blog_4b4b54da0100r2l6.html C语言的条件编译

语法

if语句

1
2
3
4
5
6
7
8
9
#if 常量表达式1
代码段1
#elif 常量表达式2
代码段2
#elif 常量表达式n
代码段n
#else
代码段n+1
#endif

触发编译: 常量表达式 == true

ifdef语句

1
2
3
4
5
#ifdef 宏名
代码段1
#else
代码段2
#endif

触发编译:

  1. 此指令前#define 宏名
  2. 此指令前#include xxx.h (在xxx.h#define 宏名)

defined语句

1
2
3
4
5
6
7
8
9
#if defined(宏名1) || (!defined(宏名2) && defined(宏名3))
代码段1
#elif 常量表达式2
代码段2
#elif 常量表达式n
代码段n
#else
代码段n+1
#endif

使用条件:

  1. 宏名被定义过, defined(宏名)返回true
  2. 宏名未定义过, defined(宏名)返回false