- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2010C程序教案(第10章)
【教学课题】
预编译处理
(第10章预编译处理,1、2节)
【目的要求】
了解编译预处理的特点和功能,掌握编译预处理中的宏定义,理解文件包含。
【教学重点】
宏的定义与使用(无参和有参),理解带参的宏和函数的区别。
【教学难点】
宏的定义与使用(无参和有参),理解带参的宏和函数的区别。
【教学方法】
任务驱动法,问题引导法
【教学手段】
讲授+多媒体演示+学生动手
【作业布置】
1、定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换的两个值。
2、分别用函数和带参的宏,从3 个数中找出最大数。
一、提出任务,引入课题
例1:#includestdio.h
main()
{ int a……}
例2:#includestdio.h
#define N 100
main()
{ int a[N];……
}。
一般C程序的开发执行过程:
编辑 → 编译 → 连接 → 执行
含有预处理命令的C程序:
编辑 → 预处理 → 编译 → 连接 → 执行
二、分析任务,讲授新课
C提供的预处理功能主要有以下三种: 宏定义、文件包含、条件编译。
分别用宏定义命令、文件包含命令、条件编译命令来实现。为了与一般C语句相区别,这些命令以符号“ #” 开头。
(一)宏替换(P172)
宏: 代表一个字符串的标识符。
宏名:被定义为“宏”的标识符。
宏代换(展开):在编译预处理时,对程序中所有出现的 “宏名”,用宏定义中的字符串去代换的过程。
? 不带参数的宏定义
A、一般形式: #define 标识符 替换文本
例如:#define PI 3.14159
main()
{ float l,r;
printf( “Input a number :”); scanf (“%f”,r);
l=2*PI*r printf(“l=%f\n”,l); }
说明:
⑴宏名一般用大写表示,以便与变量名区分。
⑵使用宏名使程序易读,易修改。
⑶只作简单的置换,不作正确性检查。
⑷宏定义不是C语句,不必在行末加分号。
⑸宏名的作用域一般从自定义命令到本源文件结束。
⑹可以用# undef命令终止宏定义的作用域。
⑺宏定义允许嵌套,允许层层置换。
⑻宏名在源程序中用双引号括起来,则TC中预处理不对其作宏代换。
例: printf(“L=%f”, L); 中双引号内L不替换。
⑼宏定义与定义的变量不同,宏只作字符替换,不分配内存空间。
⑽对“输出格式”进行宏定义,可以减少书写麻烦.
举例:
例1、不带参数的宏的程序(见P173)
2
格式:#define 宏名(参数表) 替换文本
? 例:#define s(a,b) a*b {…… area =s(3,2); ……} 对带参的宏展开后,为area=3*2;
说明:
⑴对带参数的宏展开只是将宏名后括号内的实参字符串代替#define命令行中的形参。
⑵宏定义时,在宏名与带参数的括号之间不应加空格,否则将空格以后的字符都作为替代字符串的一部分。
⑶有参宏的展开,只是将实参作为字符串,简单地置换形参字符串,而不作任何语法检查。在定义有参宏时,在所有形参和整个字符串外,均加一对圆括号。
带参宏与函数的区别:
1、函数调用时,先求实参表达式值,后代入。而带参的宏只是进行简单的字符替换。
2、函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,不分配内存单元,不进行值的传递,也无“返回值”。
3、对函数中的实参和形参都要定义类型,类型应一致。而宏不存在类型问题,宏名和参数无类型,只是一个符号代表,展开时代入指定的字符即可。
例2、带参数宏的使用实例(P174)
“文件包含”处理
“文件包含”处理是指将指定的被包含文件的全部内容插到该控制行的位置处,使其成为源文件的一部分参与编译。因此,被包含的文件应该是源文件。
通常置于源程序文件的首部,故也称为“头文件”。
C编译系统提供的头文件扩展名为“.h”,但设计者可根据实际情况,自行确定包含文件的后缀、名字及其位置。
一般形式,#include “文件名” 或 #include 文件名
二者的区别:
用尖括号时称为标准方式,系统到存放C库头文件所在的目录中寻找要包含的文件。
用双引号时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找。
说明:
编译预处理时,预处理程序将查找指定的被包含文件,并将其复制到#include命令出现的位置。
常用在文件头部的被包含文件,称为“标题文件”或“头部文件”,常
您可能关注的文档
- 区域为背景的综合题抢分策略学案.doc
- oldrivertown乌镇西塘.ppt
- 人人都是通风员复习资料.doc
- 2001-2011年河南中招考试作图题汇编.doc
- 铁路列车广告媒体评价(newdata).ppt
- 6试验检测项目(参数)一览.doc
- 第一单元第一课认识我自己.doc
- 网络营销与策划A卷及答案.doc
- 2011佛山市模拟试题(一)答案.doc
- 专职安全员培训计划书.doc
- 2025年馏分型齿轮油行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年被子防尘袋行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年汽车移动电站行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年常州博江化工科技有限公司介绍企业发展分析模板.pptx
- 2025年挤牙膏器行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年品种测定行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年海绵(泡棉)行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年闸门管理行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年杂醇油行业现状分析报告及未来五至十年发展前景预测报告.docx
- 2025年车用润滑油行业现状分析报告及未来五至十年发展前景预测报告.docx
文档评论(0)