#undef ,#ifdef,#ifndef,#if 的用法
#undef
是在定义的地方取消以前定义的宏定义
语法格式
#undef 标识符
解释:其中,标识符是一个宏名称。如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令。
在C语言中一旦定义预处理器标识符,它将保持已定义状态且在作用域内,直到程序结速或使用#undef
指令取消定义
例子
#define TRACE
#if DBG //GBD 成立如果条件满足执行这个分支
#undef TRACE //释放之前定义的#define TRACE,防止重复定义
#define TRACE iiiiii
#else //DBG 不成立 执行这个分支
#ifndef TRACE //当 TRACE 没有被定义的时候
#define TRACE // 定义TRACE
#endif //结束该分支
#endif //结束总的
#ifdef , #ifndef 使用
条件编译命令最常见的形式为
#ifdef 标识符
程序段1
#else
程序段2
#endif
#ifndef 标识符
程序段1
#else
程序段2
#endif
#if 表达式 //是一个表达式,不是简单的标识符
程序段1
#else
程序段2
#endif
当表达式成立的时候执行程序段1,否则执行程序段2
特别注意
除 #undef
释放之前的宏定义可单独使用之外
#ifdef
,#ifndef
, #if
都要与#endif
配对
如:
#if... #else...#endif
#ifdef...#endif
#ifndef...#endif
/*一一匹配对应*/