5. 取消宏定义

在 C 语言中,使用 #define 宏定义指令定义的宏可以使用 #undef 指令取消宏定义。

语法:

#undef 宏名

说明:

  1. 如果宏名已经定义过,则取消此宏的定义。
  2. 如果 宏名没有定义过,则 #undef 无效。

示例:

// filename: undef.c
#include <stdio.h>

#define PI         3.14

int main(int argc, char * argv[]) {
    printf("圆周率:%f\n", PI);
#undef PI  // 取消 PI 的宏定义
#define PI  3.1415926  // 重新定义宏 PI
    printf("圆周率:%f\n", PI);

    return 0;
}

运行结果如下:

weimingze@mzstudio:~$ gcc -o undef undef.c
weimingze@mzstudio:~$ ./undef
圆周率:3.140000
圆周率:3.141593

可见重新定义后 PI 的值的精度增高了。