第十二章编译预处理.ppt
《第十二章编译预处理.ppt》由会员分享,可在线阅读,更多相关《第十二章编译预处理.ppt(27页珍藏版)》请在三一办公上搜索。
1、第12章 编译预处理,本章要点熟练掌握include命令的含义和用法理解#define命令的使用了解各种条件编译(#if、#else、#endif、#ifdef和#undef等)的意义及用法本章难点文件包含命令#include的使用带参宏与函数的区别区分条件编译预处理指令的使用场合,概 述,一、编译预处理的概念,C语言允许在程序中使用几种特殊的命令(它们不是一般的C语句),在C编译系统对程序进行通常的编译之前,先对程序中这些特殊命令进行“预处理”,然后将预处理的结果和源程序一起再进行通常的编译处理,以得到目标代码。,二、主要预处理功能,宏定义;文件包含;条件编译,12.1 文件包含,C语言提供
2、#include命令来实现“文件包含”的操作,其一般形式为:,作用:使编译系统把指定的被包含文件嵌入到带有#include的源文件中。,“文件包含”示意图,file1.c file2.c file1.c 包含#include“file2.c”B A B A(a)(b)(c),假如file1.c文件中的内容如下:int a,b,c;float m,n,p;char r,s,t;file2.c文件的内容如下:#includefile1.cmain()经过编译预处理后,file2.c文件的内容为:int a,b,c;float m,n,p;char r,s,t;main(),#include“文件名
3、”,先在当前工作目录中去查找,若找不到再到指定的标准目录中去查找。,如:对Turbo C编译系统,先在用户目录下 查找,然后在TCinclude文件夹中查找。,#include,直接到系统指定的标准目录中去查找。,如:对Turbo C编译系统,直接在TCinclude 文件夹中查找。,在使用编译预处理#include语句时,需要注意的几个问题如下:,(1)当#include语句指定的文件中的内容发生改变时,包含文件的所有源文件都应该注意重新进行编译等处理。(2)文件包括可以嵌套使用,即被包括的文件中还可以使用#include语句。(3)由#include语句指定文件中可以包含任何语言成分,通常
4、将经常使用的、具有公共性质的符号常量、带参数的宏定义以及外部变量等集中起来放在这种文件中,这样可以避免一些重复操作。(4)被包含的文件通常是源文件,而不是目标文件。,根据经验的总结,以下内容放在头文件中比较合适。需要说明的是C语言对此没有强行的规定。包含指令(嵌套),如:#include函数声明,如:extern float fun(float x);类型说明,如:enum bool false,true常量定义,如:const float pi=3.14159;数据声明,如:extern int m;宏定义,如:#define PI 3.1415926;,1 无参宏定义,11.2 宏定义,宏
5、名,宏内容,无分号,引例:,#define PI 3.1415926main()float l,s,r,v;printf(“input radius:”);scanf(“%f”,其中#define PI 3.1415926 作用是指定标识符PI来代表“3.1415926”,宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开中由预处理程序层层代换。例如:#define N 2#define M N+1#define NUM(M+1)*M/2,替换的过程为;NUM=(M+1)*M/2;而M=N+1,也就是说NUM=(N+1+1)*N+1/2。,宏名用做代替一个字符串,不作语法检查;
6、,宏定义的字符串不能以“;”结尾,字符串结束后一 定要换行;,C语言允许宏定义出现在程序中函数外面的任何 位置,但一般情况下它总写在文件的开头。,说明:,宏名一般习惯用大写字母,以便与变量名相区别;,在进行宏定义时,可以引用已定义的宏名;,(6)宏名的前后应有空格,以便准确地辨认宏名,如果没有留空格,则程序运行的结果会出错。,说明:,宏替换由编译程序预先进行;,宏替换范围是除字符串以外的所有宏名字;,若替换后文本串中仍含有宏名字,将再次进 行替换,直到程序中不含宏名字为止。,#define PI 3.1415926#define R 3.0#define L 2*PI*R#define S P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十二 编译 预处理

链接地址:https://www.31ppt.com/p-5084004.html