预处理,主要用于选择编译 (编译的时候不要某些代码,可以用预处理删掉)
#if 常量表达式
//***
#endif
#if 常量表达式1
//***
#else 常量表达式2
//***
#endif
#if 常量表达式1
//***
#elif 常量表达式2
//***
#elif 常量表达式3
//***
#endif
//宏、算术运算、逻辑运算 都是常量表达式(结果是布尔值即可)
//#if、#elif只能用于对象宏、不能用于函数宏(带参数的宏)
//================================================
//复合条件
//复合条件运算符,&&,||
#if 常量表达式1 复合条件运算符 define 常量表达式2
宏定义、宏判断
defined | 用于#if #elif 中的宏判读,可以直接返回ture或false(是一种运算式) |
---|---|
#define | 宏定义 |
#ifdef | 宏判断(判断存在) |
#ifndef | 宏判断(判断不存在) |
#endif | 所有判断体的结束标志 |
宏
未定义的宏,值为0(false) 已定义的宏,值为1(ture)
//定义对象宏
#define 宏名
//定义带参宏
#define 宏名 字符串
//字符串可以是,表达式,关键字等任何想代替的形式
宏的判断,请用#ifdef 、#ifndef、defined这3种形式