1 / 16
文档名称:

第9章 预处理命令.ppt

格式:ppt   页数:16
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第9章 预处理命令.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第9章 预处理命令.ppt

文档介绍

文档介绍:第9章 预处理命令
1
1 宏定义
2 “文件包含”处理
3 条件编译
预处理命令
2
预处理命令
预处理功能是C的一个重要特性,它以减少重复劳动为目的,负责在编译之前对源文件进行预处理。
C提供的预处理功能有以下三种:
1. 宏定义
2. 文件包含
3. 条件编译
3
宏定义
4
预处理命令
宏定义
不带参数的宏定义
宏定义就是用一个指定的标识符(名字),即“宏名”,来代表一个字符串。
一般形式:#define 标识符字符串
例如: #define PI
作用:以一个标识符去代替一个字符串。
在编译时,将宏名替换成字符串的过程称为“宏展开”。
说明:
宏名一般习惯用大写字母表示;
使用宏定义的优点是减少程序中重复书写某些字符串的工作量、减少出错率和提高程序的通用性;
5
预处理命令
宏定义
不带参数的宏定义
说明:
宏定义的实质是用宏名代替一个字符串,作简单置换,不作语法检查;
宏定义不是C语句,不必在行末加分号;
宏名的有效范围即作用域:从定义点开始,到本源文件结束;
可用#undef命令终止宏定义作用域;
宏定义允许嵌套;定义时可引用已定义的宏名,可以层层置换;
对程序中用双引号括起来的字符串内的字符,即使与宏名相同,也不进行置换。
宏定义是专门用于预处理命令的一个专用名词,只做字符替换,不分配内存空间。
6
预处理命令
宏定义
带参数的宏定义
一般形式:#define 宏名(参数表) 字符串
例如: #define S(a,b) a*b
area=S(3,2);
展开过程:按#define命令中指定的字符串从左到右进行替换,字符串中带有形参的话,首先用相应的实参去替换,形成新的字符串,然后去替换宏。
说明:
对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参;
在宏定义时,在宏名与带参数的括号之间不能加空格。
7
预处理命令
宏定义
带参数的宏定义
带参数的宏与函数的比较:
带参数的宏定义有点象函数,在调用时,形参与实参一一对应,与函数调用的方式很相似,但不是函数,它们有本质上的区别,主要不同点是:
函数调用时,要先求出实参表达式的值,然后代入形参,而使用带参的宏只是进行简单的字符串替换;
函数调用要为形参分配内存单元,而宏调用不涉及,不进行值的传递处理,也没有“返回值”的概念;
函数定义时,形参和实参类型要一致,而宏不存在类型问题,只是简单的字符串替换;
8
预处理命令
宏定义
带参数的宏定义
带参数的宏与函数的比较:
函数的 return 只能返回一个值,而宏可以设法得到 n 个结果; [例] 见教材Page 192
宏替换对所有的宏名展开,使源程序增长,函数调用却不使源程序增长;
宏替换不占运行时间,只占编译时间,而函数调用则占运行时间(分配单元,保留现场,值传递,返回)。
利用宏定义,可以实现程序的简化。
9
预处理命令
宏定义
小结
预处理命令提供了对操作进行各种简写以及能很容易地改变后来定义的方法。正确地使用预处理命令会给程序设计带来很多便利,但也常会给程序设计者带来很多容易混淆的地方。
对宏来讲,最困难的是正确地定义它。
在宏的使用中,最容易产生的误解是:把它与函数语句或类型混淆起来。宏是作用于程序的正文之上的,即是说,宏提供了一种对构成程序的字符进行变换的方法,它们并不作用在那些程序的目标上。
10

最近更新

2025年浙江工商职业技术学院单招职业适应性测.. 41页

2025年浙江建设职业技术学院单招职业倾向性考.. 40页

2025年浙江省宁波市单招职业适应性测试模拟测.. 40页

2025年浙江艺术职业学院单招职业适应性测试题.. 40页

2025年浙江邮电职业技术学院单招职业倾向性考.. 40页

2026年单招试题河北及答案1套 42页

2026年历年陕西单招试题必考题 41页

2026年厦门工学院单招职测备考题库必考题 43页

2025年湖北城市建设职业技术学院单招职业技能.. 39页

2025年湖北生态工程职业技术学院单招职业倾向.. 40页

2025年湖南交通职业技术学院单招职业倾向性测.. 40页

2025年湖南省怀化市单招职业适应性测试模拟测.. 39页

2025年湖南邮电职业技术学院单招职业技能考试.. 40页

2025年湖南高尔夫旅游职业学院单招职业技能考.. 42页

2025年漳州卫生职业学院单招职业适应性考试模.. 41页

2025年潍坊食品科技职业学院单招职业倾向性测.. 40页

2026年安徽城市管理职业学院单招职业适应性测.. 41页

2026年安徽汽车职业技术学院单招职业技能考试.. 42页

2025年珠海城市职业技术学院单招职业适应性测.. 40页

2025年甘肃工业职业技术学院单招综合素质考试.. 40页

2026年宜春职业技术学院单招职业技能考试模拟.. 43页

2025年甘肃钢铁职业技术学院单招职业倾向性考.. 39页

2025年广州卫生职业技术学院单招职业技能测试.. 64页

美团代运营业务委托合同 6页

九年级家长会课件PPT下载(初三2班) 25页

山东科技版小学英语五年级下册词汇表带音标 4页

年产3000万片硝苯地平缓释片车间设计 40页

DB61∕T 926-2014 火灾高危单位消防安全管理与.. 45页

AQ 7011-2018《高温熔融金属吊运安全规程》 11页

保洁外包单位月度考评表 3页