📅  最后修改于: 2023-12-03 14:40:27.478000             🧑  作者: Mango
在C语言中,可以使用#define
指令来定义宏。宏定义是在预处理阶段进行处理的,会将程序中所有出现的宏名替换为其对应的定义。然而,有时候可能需要取消一个已经定义的宏,在这种情况下,我们需要使用#undef
指令。
#undef
指令用于取消已定义的宏定义。它的语法如下:
#undef macro_name
这条指令将会取消已经定义的宏macro_name
。
#include <stdio.h>
#define PI 3.1415926
int main() {
printf("PI = %f\n", PI);
#undef PI
printf("PI = %f\n", PI);
return 0;
}
输出结果为:
PI = 3.141593
main.c: In function 'main':
main.c:7:26: error: 'PI' undeclared (first use in this function)
printf("PI = %f\n", PI);
^~
main.c:7:26: note: each undeclared identifier is reported only once for each function it appears in
可以看到,在#undef PI
指令之后,我们再次使用PI
宏时,编译器就会提示该宏未定义。
#undef
指令只能取消已经存在的宏定义,否则会出现编译错误。