- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预编译命令大全
第14章 预处理及用户配置文件
? 预处理命命令通常在程序编译时进行一些符号处
理,其并不执行具体的硬件操作。C51语言中的预
处理命命令主要有宏定义指令、文件包包含指令和和条
件编译指令,还有其他一些调试时使用的指令。
本章将详细介绍各种预处理命命令以及C51的用户配
置文件,并结合一定的程序实例以加加深理解。本
章包包括:
? 宏定义指令
? 文件包包含指令
? 条件编译指令
? C51编译器的控制制指令
? C51的用户配置文件
14.1 预处理命命令概述
? C51语言中提供了各种预处理命命令,类似于汇编程序中的伪指令。一般来说,在对源程序进行编译前前,C51编译器需要
先对程序中的预处理命命令进行处理,然后将预处理的结果与源程序一并进行编译,最后产生目标代码。通过这些预处
理命命令,在很大程度上为C51提供功功能和和符号等方面的扩展,使用预处理命命令也可以提高程序的可读性。
? 为了与源程序中的语句相区别,预处理命命令前前要加加一个“#”。C51程序中的预处理命命令包包括以下几个:
? #define
//用于宏定义
? #error
//用于程序调试
? #include
//用于文件包包含
? #if
//用于条件编译
? #else
//用于条件编译
? #elif
//用于多种条件编译选择
? #endif
//用于条件编译
? #ifdef
//用于条件编译
? #ifndef
//用于条件编译
? #undef
//用于宏定义
? #line
//用于更改行号
? #pragma
//用于传送控制制指令
14.2 宏定义指令
? 宏定义指令是用一些标识符作为宏名来代替一些
符号或者常量的命命令。宏定义指令可以带参数,
也可以不带参数。下面分别介绍用于宏定义的一
些预处理指令。
14.2.1 #define命命令
? #define命命令用于定义一个“宏名”。其中“宏名”是一个
标识符,在源程序中遇到到该标识符时,均以定义的串的内
容替代该标识符。ANSI标准将标识符定义为“宏名”,这
个替换过程称为“宏替换”。#define命命令用于定义宏名
时,可以带参数,也可以不带参数,下面分别介绍这两种
情况。
? 1.不带参数的宏定义
? 不带参数的宏定义,其一般形式如下:
? #define 标识符 字符串
? 其中,#define是宏定义指令,标识符即宏名,字符串是被
替换的对象。典型的宏定义指令示例如下:
? #define TURE 1
? #define FALSE 0
? #define PI 3.1415926
? 2.带参数的宏定义
? 带参数的宏定义指令,其一般形式如下:
? #define 宏名(参数表) 字符串
14.2.2 #undef命命令
? #undef命命令用于取消前前面已定义过的宏名。一般形式为:
? #undef 宏名
? 其中,宏名为前前面用#define定义过的标识符。使用#undef的目的是将宏
名局限在仅需要的代码段中。示例如下:
? #include stdio.h
//头文件
? #define COUNT 25
//宏定义
? void main()
//主函数
? {
? printf(COUNT =%d\n, COUNT);
//输出COUNT =10
? #undef COUNT
//撤销宏定义
? //printf(COUNT =%d\n, COUNT);
//此时再引用是错误的
? }
14.3 文件包包含指令
? 文件包包含指令#include通常在C51程序的开头
文档评论(0)