- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 单片机精品
1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司 21天学51单片机开发 第十一讲:C51的预处理 课程安排 预处理命令概述 宏定义指令 文件包含指令 条件编译指令 其他预处理指令 预处理命令概述 预处理命令,顾名思义,便是在程序编译和执行前首先执行的命令。 预处理命令在功能上有点类似于单片机汇编语言的伪指令。 C51语言中的预处理命令包括文件包含指令、宏定义指令、条件编译指令以及一些程序调试指令。 预处理命令前要加一个“#” 。 预处理命令 单片机C51语言中的预处理命令包括以下几个: #define #error #include #if #else #elif #endif #ifdef #ifndef #undef #line #pragma 分类 这里,按照功能来讲: #define和#undef属于宏定义类指令 #if、#else、#ifdef、#ifndef和#endif属于条件编译类指令 #include属于文件包含类指令 #line、#error和#pragma用于其他用途的预处理指令。 宏定义指令 宏定义指令是采用用户自定义的标识符来代替一些符号、常量以及表达式等。 C51语言的宏定义指令包括#define和#undef,具体可以分为如下几个: #define指令 带参数的#define指令 #undef指令 #define指令 #define指令的使用格式如下: #define 标识符 替换对象 宏定义指令一般放在程序的开头,典型的宏定义指令示例如下: #define TURE 1 #define FALSE 0 #define str hello! #define PI 3.14 也就是说,如果在源代码中,遇到TURE就用1代替,FALSE就用0代替,str用hello!代替,PI就用3.14代替。 宏定义指令的好处 在程序中使用宏定义指令的好处是: 可以采用较短的字符串来代替较长的字符串,从而减少程序中字符串输入的工作量。 可以提高程序的可移植性。 便于整体修改一个程序中经常使用的常量或者字符串,方便了程序的调试和修改。 宏定义可以表示数组的大小,这样便于程序的修改。示例如下: #define SIZE 10 int ch[SIZE]; 宏定义指令的注意事项 在程序中使用宏定义指令时,应注意以下几点: 宏定义指令应该放到程序文件的开始处。 宏定义指令后面不需要加分号。 如果程序中宏定义指令较多,可将其放到独立的文件中,保存为*.h文件,然后用#include指令来访问。 宏名的定义需要满足C51标识符的命名规则。 可以分为多行来书写。 宏定义的宏名可以嵌套使用。 带参数的#define指令 宏定义指令#define还可以带参数表,其一般形式如下: #define 标识符(参数表) 替换对象 带参数的宏定义和函数的作用很相似。 #undef指令 #undef指令的一般形式如下: #undef 宏名 01 #include stdio.h //头文件 02 #define PI 3.14159 //宏定义PI=3.14159 03 #define L(R) 2*PI*R //带参数的宏定义,用于计算周长 04 #define S(R) PI*R*R //带参数的宏定义,用于计算面积 05 void main() //主函数 06 { 07 int r; 08 r=2; 09 printf(r=%d,L=%f\n,r,L(r)); //输出周长 10 printf(r=%d,S=%f\n,r,S(r)); //输出面积 11 #undef PI //取消宏定义 12 #undef L //取消宏定义 13 #undef S //取消宏定义 14 printf(r=%d,L=%f\n,r,L(r)); //输出周长 15 printf(r=%d,S=%f\n,r,S(r)); //输出面积 16 } 文件包含指令 #include指令的一般形式如下: #include 头文件.h #include 头文件.h #include 宏定义标识符 一个#include命令只能包含一个文件。 #include命令末尾不需要分号“;”结束。 两种使用区别 使用#include时,文件的包含可以采用两种方式: 文件的包含采用双引号 文件的包含采用尖括号 常用的头文件 absacc.h asscert.h ctype.h intrins.h mat
您可能关注的文档
最近下载
- 光伏项目送出工程受限空间空间作业专项施工方案.doc
- 深刻领会二十届三中全会精神,进一步全面深化改革-2025执业药师继续教育答案.docx VIP
- 苏教版五年级上册数学期中试卷.doc VIP
- 【33页PPT】班组长安全管理培训课件.ppt VIP
- 2025年北京通州区招聘社区工作者和社区专职党务工作者考试笔试试题.pdf VIP
- 《民用机场智能人像识别系统技术规范》(TCCAATB 0039-2023).pdf VIP
- 城市轨道交通ATO系统.ppt VIP
- 苏教版五年级数学上册期中试卷(含答案).pdf VIP
- 职业生涯开发与管理_南京邮电大学中国大学mooc课后章节答案期末考试题库2023年.pdf VIP
- 2025年亳州市社区工作者招聘笔试备考试题及答案解析.docx VIP
原创力文档


文档评论(0)