C 语言:#undef 指令

本 C 文章解释了如何在 C 语言中使用 #undef 预处理器指令。更多C教程请访问码农之家 

描述

在 C 编程语言中,#undef 指令告诉预处理器删除指定宏的所有定义。宏可以在被#undef 指令删除后重新定义。

一旦宏未定义,该宏上的#ifdef 指令将评估为假。

语法

C 语言中#undef 指令的语法是:

#undef macro_definition
macro_definition   将被预处理器删除的宏的名称。

例子

以下示例显示了如何使用 #undef 指令:

/* Example using #undef directive by TechOnTheNet.com */
 
#include <stdio.h>
 
#define YEARS_OLD 12
 
#undef YEARS_OLD
 
int main()
{
   #ifdef YEARS_OLD
   printf("TechOnTheNet is over %d years old.\n", YEARS_OLD);
   #endif
 
   printf("TechOnTheNet is a great resource.\n");
 
   return 0;
}

在此示例中,首先使用值 12 定义 YEARS_OLD 宏,然后使用 #undef 指令取消定义。由于宏不再存在,语句#ifdef YEARS_OLD的计算结果为假。这会导致后面的printf函数被跳过。

这是可执行程序的输出:

TechOnTheNet is a great resource.

 

posted @ 2022-05-23 21:46  small_123  阅读(357)  评论(0编辑  收藏  举报