#undef 指令 (C/C++)

移除(取消定义)之前使用 #define 创建的名称。

语法

#undef 标识符

注解

#undef 指令可移除 identifier 的当前定义。 因此,identifier 的后续匹配项被预处理器忽略。 若要使用 #undef 移除宏定义,请仅给定宏 identifier,不要给定参数列表。

还可以将 #undef 指令应用于之前没有定义的标识符。 这将确保该标识符是不确定的。 宏替换未在 #undef 语句中执行。

#undef 指令通常与 #define 指令成对,用来在源程序中创建一个区域,使其中的标识符具有特殊含义。 例如,源程序的特定函数可使用清单常量定义不会影响程序的其余部分的环境特定值。 #undef 指令还可与 #if 指令一起使用来控制源程序的条件编译。 有关详细信息,请参阅 #if、#elif、#else 和 #endif 指令

在以下示例中,#undef 指令将移除符号常量和宏的定义。 请注意,只给定宏的标识符。

#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD

Microsoft 专用

可以使用 /U 选项从命令行取消定义宏,后跟要取消定义的宏名称。 发出此命令的效果等效于文件开头的 巨集 名称语句序列#undef

结束 Microsoft 专用

另请参阅

预处理器指令