本 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_OLDint main()
{#ifdef YEARS_OLDprintf("TechOnTheNet is over %d years old.\n", YEARS_OLD);#endifprintf("TechOnTheNet is a great resource.\n");return 0;
}

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

这是可执行程序的输出:

TechOnTheNet is a great resource.

C 语言:#undef 指令相关推荐

  1. C语言预处理指令大全

    C语言预处理指令 文章目录 C语言预处理指令 define 语法 Linux编译时指定宏的值及宏 删除已有的宏 C语言允许多参数的宏及宏函数 宏函数需要注意的事项 参数宏创建字符串 预处理粘合剂 li ...

  2. R语言基础指令和并行算法初识(上篇)

    一.R语言背景介绍 二. R语言基础指令 三. R语言并行算法 四. 计划打算 一.R语言背景介绍 1.2.起源:R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支.可以认为R是S语言的一种 ...

  3. 三菱fx3u使用st语言adprw指令通过485-adp-mb模块与台达变频器进行通信

    三菱fx3u使用st语言adprw指令通过485-adp-mb模块与台达变频器进行通信 作者:东莞市天翔环境工程有限公司,广东东极环保科技有限公司 使用ST语言作为PLC控制程序编写的通信方面的资料比 ...

  4. 三菱fx1n使用st语言rs指令通过485-bd模块与台达变频器进行通信

    三菱fx1n使用st语言rs指令通过485-bd模块与台达变频器进行通信 作者:东莞市天翔环境工程有限公司,广东东极环保科技有限公司 使用ST语言作为PLC控制程序编写的通信方面的资料比较少,网络上找 ...

  5. c语言 pragma指令,C语言#pragma指令用法

    引导语:在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.以下是百分网小编分享给大家的C语言#pragma指令用法,欢迎阅读! # ...

  6. c语言编译预处理指令大全,C语言预处理指令

    「今天是学习C语言第 32 天」 当你选择了一种语言,意味着你还选择了一组技术.一个社区.--Joshua Bloch # 预处理 C语言源程序先经过预处理器进行预处理,之后经过编译器编译成二进制可执 ...

  7. C 语言编程 — 指令行参数

    目录 文章目录 目录 前文列表 命令行参数 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本数据类型> < ...

  8. c语言 空指令的作用,单片机C语言编程空指令产生短延时怎么办

    标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果.这在汇编语言中很容易实现,写几个nop就行了. 在keil C51中,直接调用库函数: #include // ...

  9. C语言(APL指令)对mysql数据库的操作-----连接、读取、写入、修改、删除(保姆级讲解)

    目录 前言: C语言操作mysql前的准备工作 1.C语言连接mysql数据库 函数介绍 (1)mysql_ini() 函数 (2)mysql_library_init()函数 (3)mysql_re ...

最新文章

  1. 商汤提基于贪心超网络的One-Shot NAS,达到最新SOTA | CVPR 2020
  2. insert into 多条数据_最全总结 | 聊聊 Python 数据处理全家桶(Sqlite篇)
  3. Ubuntu 10.10(64位)编译Android 2.3
  4. (chap2 简单的Http协议) 请求报文和响应报文
  5. 解决yum命令失效,vim: command not found
  6. mysql explain output_MySQL查询优化之explain的深入解析【转载】
  7. opencv 颜色空间转换、颜色追踪
  8. 蓝牙 查询码 android,android bluetooth UUID蓝牙查询表
  9. 读取页面上所有的checkbox
  10. 推荐系统概述——《ML算法原理和实践》学习笔记
  11. Python求正态分布曲线下面积
  12. 分享全网免费的CDN网站加速平台(测试)
  13. guava-retry介绍
  14. 语音用户如何计算机,笔记本电脑语音聊天对方听不清声音该怎么处理
  15. 荣耀背后的两条微笑曲线
  16. Mybatis 注解开发
  17. mysql基本SQL语句
  18. 一个APP的开发流程
  19. php文件域的作用,在word中何为域
  20. Category的底层分析

热门文章

  1. javascript轮播插件的使用(TouchSlide)
  2. idea中方法折叠或是展开的设置
  3. Linux Qt Designer UI界面设计
  4. pytest——03 setup和teardown
  5. Li.Finance 互操作性扩展到 Optimism
  6. linux下maven配置
  7. php滑动拼图验证,JS实现PC手机端和嵌入式滑动拼图验证码三种效果
  8. 更改antdDesign 筛选周默认周的开始周时间
  9. win7操作系统双网卡同时上内外网
  10. 描述统计学(descriptive statistics)