- 53
- 0
- 约5.99千字
- 约 25页
- 2017-12-03 发布于贵州
- 举报
【精选】keil预处理命令及方法
第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程序的开头,将另外一文件的内容引入当前文件。其中被包含的文件通常是头文件、宏定义等,利用文件包含指令可以有助于更好地调试文件。其一般形式如下: #include 头文件.h #include 头文件.h #include 宏定义标识符 14.4 条件编译指令 条件编译指令用于对程序源代码的各部分有选择地进行编译。采用条件汇编,可以提高程序的适用性,缩小目标代码的大小。 在默认情况下,源程序中的所有行都要进行编译。但是有时需要某些语句行在条件满足的情况下,才进行编译,此时便用到条件编译指令。目前商业软件公司广泛应用条件编译来制作某个程序的许多不同用户版本。 14.4.1 #if、#else、#endif命令 #if、#else、#endif指令用于条件编译的一般形式如下: #if 常数表达式 语句段; #else 语句段; #endif 其中,#if、#else、#endif为条件编译指令,常数表达式为判断的条件,语句段为条件编译部分。执行过程为,如果常量表达式为真,则编译其后面的语句段;如果常量表达式为假,则编译#else后面的语句段;#endif命令是一个条件编译的结束。 14.4.2 #elif
您可能关注的文档
- 【精选】IPAD上完美演示PPT文件.doc
- 【精选】IPMA《人力资源战略与规划》模拟试题(一至三章).doc
- 【精选】IPC_信贷流程_2013.pdf
- 【精选】IPO相关流程及介绍.pdf
- 【精选】IPMA-HR 05963绩效管理练习题一.doc
- 【精选】IPQC的职责及制程管控手法.pdf
- 【精选】ios_操作系统.ppt
- 【精选】IRAC方法及其逻辑辩护.pdf
- 【精选】IP地址 路由器设置.doc
- 【精选】iResearch-2014年5月艾瑞互联网中概指数研究报告.pdf
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 医院医养结合功能区设计方案.docx
- 老年人防诈骗宣传案例分析报告.docx VIP
- 聚羧酸减水剂msds报告.docx
- 个人信用报告模板简版带水印可编辑2025年9月新版.pdf VIP
- QBNM-PS-0001—2019 汽车车身油漆涂层标准.pdf VIP
- 2025铁路旅客列车餐饮服务卫生规范.pdf VIP
- 奉节脐橙电子商务发展中存在的问题及对策研究.docx VIP
- 城中村改造建设项目可行性研究报告.docx VIP
- 2024党员围绕“学习贯彻党的创新理论、党性修养提高、联系服务群众、党员发挥先锋模范作用、铸牢中华民族共同体意识方面”5个方面组织生活会发言材料多篇.docx VIP
- 《养老之女性篇》课件.pptx VIP
原创力文档

文档评论(0)