#define 定义一个预处理宏
#undef 取消宏的定义
#if 编译预处理中的条件命令,相当于C语法中的if语句
#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句
#ifndef 与#ifdef相反,判断某个宏是否未被定义
#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if
#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else
#endif #if, #ifdef, #ifndef这些条件命令的结束标志
defined 与#if, #elif配合使用,判断某个宏是否被定义
1、 #ifndef #else #endif
#ifndef 标识符 //程序段1 #else //程序段2 #endif
若标识符未被定义则执行程序段1,否则执行程序段2。
#ifndef 和 #ifdef 相反。
2、 #define #undef
#define:定义一个宏
#undef:取消宏定义
3、defined
defined:用来测试某个宏是否被定义。 若宏被定义,则返回1,否则返回0。
与#if、#elif、#else结合使用来判断宏是否被定义
4. #if、#elif、#else、#endif
#if 常量表达式1 // 程序段1 #elif 常量表达式2 // 程序段2 #else // 程序段3 #endif
常量表达式可以是包含宏、算术运算、逻辑运算等等 。如果常量表达式为一个未定义的宏, 那么它的值被视为0。例如:
#if DEBUG // 等价于 #if 0