8.3.2 #undef命令

undef命令用于取消前面用#define命令定义过的宏名,一般形式如下。


undef宏名


其中,“#undef”是取消宏定义指令,“宏名”为前面用#define命令定义过的标识符。

使用#undef命令的目的是将宏名局限在指定的代码段中,这样可以限制宏定义的使用范围。使用#undef命令的程序示例如下。


include<stdio.h>//头文件

define COUNT 50//宏定义

void main()//主函数

{

printf(“COUNT=%d\n”,COUNT);//输出COUNT=50

undef COUNT//撤销COUNT宏定义

//printf(“COUNT=%d\n”,COUNT);//此时再引用COUNT是错误的

}


该程序可以在KeilµVision3集成开发环境中运行,其结果如下所示。


COUNT=50


在本例中,在使用#undef命令取消宏定义前,COUNT是有定义的,其值为50。在使用#undef命令取消宏定义后,COUNT没有定义不能使用,因此第二个输出语句是错误的。使用#undef命令可以终止宏定义的作用域。