keil预处理命令及方法.ppt

keil预处理命令及方法.ppt

ID:51477647

大小:220.66 KB

页数:25页

时间:2020-03-24

keil预处理命令及方法.ppt_第1页
keil预处理命令及方法.ppt_第2页
keil预处理命令及方法.ppt_第3页
keil预处理命令及方法.ppt_第4页
keil预处理命令及方法.ppt_第5页
资源描述:

《keil预处理命令及方法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第14章预处理及用户配置文件预处理命令通常在程序编译时进行一些符号处理,其并不执行具体的硬件操作。C51语言中的预处理命令主要有宏定义指令、文件包含指令和条件编译指令,还有其他一些调试时使用的指令。本章将详细介绍各种预处理命令以及C51的用户配置文件,并结合一定的程序实例以加深理解。本章包括:宏定义指令文件包含指令条件编译指令C51编译器的控制指令C51的用户配置文件14.1预处理命令概述C51语言中提供了各种预处理命令,类似于汇编程序中的伪指令。一般来说,在对源程序进行编译前,C51编译器需要先对程序中的预处理命令进行处理,然后将预处理的结果与源程序一并进行编译,最后

2、产生目标代码。通过这些预处理命令,在很大程度上为C51提供功能和符号等方面的扩展,使用预处理命令也可以提高程序的可读性。为了与源程序中的语句相区别,预处理命令前要加一个“#”。C51程序中的预处理命令包括以下几个:#define//用于宏定义#error//用于程序调试#include//用于文件包含#if//用于条件编译#else//用于条件编译#elif//用于多种条件编译选择#endif//用于条件编译#ifdef//用于条件编译#ifndef//用于条件编译#undef//用于宏定义#line//用于更改行号#pragma//用于传送控制指令14.2宏定义指令宏

3、定义指令是用一些标识符作为宏名来代替一些符号或者常量的命令。宏定义指令可以带参数,也可以不带参数。下面分别介绍用于宏定义的一些预处理指令。14.2.1#define命令#define命令用于定义一个“宏名”。其中“宏名”是一个标识符,在源程序中遇到该标识符时,均以定义的串的内容替代该标识符。ANSI标准将标识符定义为“宏名”,这个替换过程称为“宏替换”。#define命令用于定义宏名时,可以带参数,也可以不带参数,下面分别介绍这两种情况。1.不带参数的宏定义不带参数的宏定义,其一般形式如下:#define标识符字符串其中,#define是宏定义指令,标识符即宏名,字符串

4、是被替换的对象。典型的宏定义指令示例如下:#defineTURE1#defineFALSE0#definePI3.14159262.带参数的宏定义带参数的宏定义指令,其一般形式如下:#define宏名(参数表)字符串14.2.2#undef命令#undef命令用于取消前面已定义过的宏名。一般形式为:#undef宏名其中,宏名为前面用#define定义过的标识符。使用#undef的目的是将宏名局限在仅需要的代码段中。示例如下:#include//头文件#defineCOUNT25//宏定义voidmain()//主函数{printf("COUNT=%d

5、n",COUNT);//输出COUNT=10#undefCOUNT//撤销宏定义//printf("COUNT=%d",COUNT);//此时再引用是错误的}14.3文件包含指令文件包含指令#include通常在C51程序的开头,将另外一文件的内容引入当前文件。其中被包含的文件通常是头文件、宏定义等,利用文件包含指令可以有助于更好地调试文件。其一般形式如下:#include"头文件.h"#include<头文件.h>#include宏定义标识符14.4条件编译指令条件编译指令用于对程序源代码的各部分有选择地进行编译。采用条件汇编,可以提高程序的适用性,缩小目标代码的

6、大小。在默认情况下,源程序中的所有行都要进行编译。但是有时需要某些语句行在条件满足的情况下,才进行编译,此时便用到条件编译指令。目前商业软件公司广泛应用条件编译来制作某个程序的许多不同用户版本。14.4.1#if、#else、#endif命令#if、#else、#endif指令用于条件编译的一般形式如下:#if常数表达式语句段;#else语句段;#endif其中,#if、#else、#endif为条件编译指令,常数表达式为判断的条件,语句段为条件编译部分。执行过程为,如果常量表达式为真,则编译其后面的语句段;如果常量表达式为假,则编译#else后面的语句段;#endif

7、命令是一个条件编译的结束。14.4.2#elif命令#elif命令用于进行多种编译选择。其意义与“elseif”相同,形成一个if-else-if阶梯状语句。此时条件编译的一般形式如下:#if表达式0语句段;#elif表达式1语句段;#elif表达式2语句段;#elif表达式3语句段;…#elif表达式n语句段;#endif14.4.3#ifdef、#ifndef命令#ifdef与#ifndef命令用于判断宏名是否被定义,并根据判断的情况进行条件编译。#ifdef命令的一般形式是:#ifdef宏名语句段;#endif其执行过程是,如果宏名

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。