📜  C语言中的 #undef(1)

📅  最后修改于: 2023-12-03 14:40:27.478000             🧑  作者: Mango

C语言中的 #undef

介绍

在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宏时,编译器就会提示该宏未定义。

注意事项
  1. #undef指令只能取消已经存在的宏定义,否则会出现编译错误。
  2. 在取消宏定义之后,该宏就不再被编译器识别,所以在取消宏定义之后再次使用该宏会出现编译错误。