- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第8课编译预处理
课题
编译预处理
课时
5课时(225min)。
教学目标
知识技能目标:
1.了解宏定义。
2.通过学习与练习掌握文件包含。
思政育人目标:
让学生通过学习编译预处理,具有积极向上的学习态度,具备自学、自省、自控的能力。
教学重难点
教学重点:宏定义
教学难点:文件包含
教学方法
讲授法、问答法、讨论法
教学用具
电脑、投影仪、多媒体课件、教材
教学设计
第1节课:考勤(2min)--知识讲解(40min)--作业布置(3min)
第2节课:知识讲解(40min)--课堂小结(3min)--作业布置(2min)
第3节课:知识讲解(40min)--课堂小结(3min)--作业布置(2min)
第4节课:知识讲解(40min)--课堂小结(3min)--作业布置(2min)
第5节课:知识讲解(40min)--课堂小结(3min)--作业布置(2min)
教学过程
主要教学内容及步骤
设计意图
考勤
(2min)
■【教师】清点上课人数,记录好考勤
■【学生】班干部报请假人员及原因
培养学生的组织纪律性,掌握学生的出勤情况
知识讲解
(40min)
【教师】展示宏定义
任务描述
用带参数的宏计算圆面积。
预备知识
在C语言源程序中,允许用一个标识符来表示字符串(不是狭义的字符串常量或变量,而是指一串排列符合C语言规定的字符),称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代替,这称为“宏代换”或“宏展开”。
宏定义是由源程序中的宏命令完成的,宏代换是由预处理程序自动完成的,宏替换不占用程序的运行时间。“宏”按照有无参数,划分为无参数的宏和带参数的宏两种。
一、无参数的宏定义
无参数的宏的宏名后面不带参数,其定义的一般形式为:
#define标识符字符串
#是预处理命令的标志,“define”为宏定义命令,“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。前面介绍过的符号常量的定义就是一种无参数宏定义。
例如:
#definePI3.1415926
#definesum1+2
【注意】
(1)宏定义是用宏名来表示一个字符串,这只是一种简单的代换,字符串中可以包含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如果有错误,只能在编译已被宏展开后的源程序里发现。
(2)宏定义不是说明语句,在行末不必加分号,若加了分号,则连分号一起被置换。
例如:
#definesum1+2;
……
result=sum/2;
宏展开后实际上就是:
result=1+2;/2
这样显然是不对的。
(3)宏定义必须写在函数之外,其作用域为从宏定义命令起到源程序结束。如果要终止作用域可使用#undef命令。例如:
#definePI3.1415926
voidmain()
{
…
}
#undefPI
f()
{…}
表示PI只在main函数中有效,在f函数中无效。
(4)宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时由预处理程序层层代换。
(5)宏名若在源程序中用引号括起来,则预处理程序不对其做宏代换。例如:
#defineL6.283185
voidmain()
{
printf(L=%f,L);
}
运行结果为:
L=6.283185
本例中可以看到,在printf函数中,只有第二个L被宏替换了,第一个L仍正常显示。这是因为第一个L被引号括住,使其不参与替换。
(6)习惯上,宏名用大写字母表示,以便与变量名区别,但也允许用小写字母。
二、带参数的宏定义
C语言中允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中不仅要宏展开,而且要用实参去代换形参。
带参数宏定义的一般形式为:
#define宏名(形参表)字符串
例如:
#defineAREA(R)3.14*R*R
#defineSUM(X,Y)X+Y
带参数宏调用的一般形式为:
宏名(实参表);
【例8-1】把下列运算表达式定义为带参的宏。
(1)求两个数的小者。
(2)求x的绝对值。
(3)判断x是否奇数。
(4)两个整数交换。
解答:带参的宏定义如下:
(1)#defineMIN(a,b)((a)(b)?(a):(b))
(2)#defineABS(x)((x)=0)?(x):(-x)
(3)#defineISO(x)(((x)%2==1)?1:0)
(4)#defineCHANGE(a,b){intt
有哪些信誉好的足球投注网站
文档评论(0)