版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,主要内容: 9.1 宏定义 9.2 文件包含,第九章 编译预处理,2,第九章 编译预处理,所谓预处理就是C语言的编译系统在对程序进行通常的编译之前,先对这些特殊的命令进行预处理,然后将预处理的结果和源程序一起再进行通常的编译处理,以得到目标代码。 C 语言的预处理主要有以下三种: 1. 宏定义 #define 2. 文件包含 #include 3. 条件编译 #if-#else-#endif等 C的编译预处理命令格式: 以“#”开头 占单独书写行 语句尾不加分号,3,9.1 宏定义,宏定义以#define开头,当程序中多次使用某一常量或某一字符串时,可以使用宏定义以使程序书写简单。 如有:
2、 #define M 10在程序中可以用10取代所有的M。 使用宏定义有两个注意事项:一是宏定义与函数不同;二是对于带参的宏,务必要进行宏替换后再分析程序的运行结果。,4,一、不带参的宏定义,格式: #define 宏名 宏体 宏展开:在预编译时将宏名替换成宏体(字符串),这个过程称为宏展开(宏替换)。 说明:(1)宏名一般用大写字母表示以便与变量分开, 但不是规定而只是习惯。 (2)宏定义不是C语句,末尾不加分号。 (3)程序中双引号中的宏名不进行宏替换。,5,无参的宏定义使用举例,#define M 10 main( ) int j,aM; for(j=0;jM;j+) aj=j+1; f
3、or(j=0;jM;j+) printf(%6d,aj); ,无参宏定义中的宏名M,系统是作为符号常量来处理的,因此可以用来定义数组。,6,二、带参数的宏定义,格式: #define 标识符(参数表) 字符串 说明: (1) 参数表中的参数必须为变量,称为形参。 (2) 带参的宏定义展开是从左到右依次将实参 字符串代替形参字符串。 (3) 在宏定义时,宏名与带参的括号之间不应 留空格,括号后面一定要留空格。,7,带参的宏定义使用举例,#define S(x,y) x*y main( ) int a=3,b=4,c=5,d=6; printf(a*b=%dn, S(a,b); printf(a+
4、b*c+d=%dn , S(a+b,c+d); ,a*b);,a+b*c+d ) ) ;,带参的宏定义在分析程序之前先进行宏展开,S(a+b,c+d)展开时用a+b代替x,用c+d代替y,展开的结果为:a+b*c+d,8,带参的宏定义使用举例,#define S(x,y) x*y main() int a=3,b=4,c=5,d=6; printf(a*b=%dn, S ( a , b ) ) ; printf(a+b*c+d=%dn , S(a+b),(c+d); ,a*b,(a+b)*(c+d) ) ;,带参的宏定义在分析程序之前先进行宏展开,S(a+b),(c+d)展开时用(a+b)代替
5、x,用(c+d)代替y,展开的结果为:(a+b)*(c+d),9,带参的宏定义使用举例,#define S(x,y) x*y main( ) int a=3,b=4,c=5,d=6;int k; k=S(a+b,c+d)/S(a+b,c+d); printf(%dn ,k); ,S(a+b,c+d)展开结果为:a+b*c+d/a+b*c+d=3+4*5+6/3+4*5+6=3 + 20 + 2 + 20 +6 = 51,10,9.2 文件包含,所谓文件包含是指一个源文件可以将另外一个源文件的全部内容包含进来,使另外的文件成为本文件的一部分。 Turbo C提供了#include命令来实现文件包
6、含操作。 Turbo C提供了大量的库函数,在用户使用这些库函数之前,应当使用文件包含命令将相应的头文件包含到当前源程序中。,11,一、文件包含的意义,使用文件包含可以避免程序设计中的重复劳动。,12,二、文件包含的格式及用法,格式: #include “文件名” #include ,系统到存放c库函数头文件的目录中寻找要包含的文件,称为标准方式,系统先到用户当前目录中寻找要包含的文件,若找不到,再按标准方式找,13,三、文件包含的一些说明,说明: 1. 一个#include命令只能包含一个文件。 2. 一个源程序中可以使用多个#clude命令包含多个文件。 3. 被包含的文件中还可以包含其它文件。,14,三、文件包含的一些说明,file1.c,#include “file2.h”,file2.h,#include “file3.h”,file3.h,同一个文件中可以包含多个文件,file2.h 中后缀.h可以改为.c也可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度商业地产项目景观设计合同
- 2024年款:双方自愿离婚声明书2篇
- 2024年企业品牌授权使用合同2篇
- 2024年度空间探索合作协议2篇
- 二零二四年度智能仓储系统研发与实施合同
- 2023-2024学年北京市丰台区七年级(上)期末英语试卷
- 2024年度影视作品制作与发行合作协议3篇
- 3 3吨的认识基础巩固练 人教版数学三年级上册
- 2024年度非煤矿山电力供应及安装合同2篇
- 二零二四年度股权转让合同之标的物及权益2篇
- 病案(历) 保管制度
- 二手车购买一批合同范本
- A10联盟2025届高三上学期11月段考 历史试卷 (含官方答案解析)
- 2024年巴西劳动市场变化与挑战
- 放射科专科护理模拟题含参考答案
- 家政培训讲师课件
- 中医医疗技术手册2013普及版
- 《hadoop基础》课件-第二章 Hadoop介绍
- 警校生未来职业规划
- 护士核心能力的培养ppt课件.ppt
- 三年级数学上册 第六单元 乘法 课时4 去奶奶家作业课件 北师大
评论
0/150
提交评论