网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言程序设计教程-电子教案第9章电子教案:编译预处理.ppt

C语言程序设计教程-电子教案第9章电子教案:编译预处理.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

C语言源程序的处理过程:C源程序-编译预处理-编译-连接-执行。在VS2012中,“编译”命令实际上完成了“编译预处理”和“编译”两个过程。合理使用编译预处理命令有利于程序的阅读、修改、移植和调试。9.1宏定义 9.1.1无参数的宏定义 9.1.2有参数的宏定义 9.2文件包含 9.3条件编译主要内容9.1宏定义9.1.1无参数的宏定义格式如下:#define宏名字符串例如: #definePI3.14159【例9-1】计算圆的周长和面积,用无参数的宏定义实现。#definePI3.14159voidmain(){ doublec,r,s; printf(输入圆的半径:); scanf(%lf,r); c=2*PI*r; s=PI*r*r; printf(圆的周长为:%7.2lf\n,c); printf(圆的面积为:%7.2lf\n,s);}voidmain(){ doublec,r,s; printf(输入圆的半径:); scanf(%lf,r); c=2*3.14159*r; s=3.14159*r*r; printf(圆的周长为:%7.2lf\n,c); printf(圆的面积为:%7.2lf\n,s);}在程序正式编译之前,所有出现PI的地方都用“3.14159”来展开使用宏定义有以下好处: ①程序的可读性更强。 ②使用和修改方便。9.1.2有参数的宏定义定义格式如下: #define宏名(形参列表)字符串【例9-2】定义一个求两数最小值的宏,并在程序中加以调用。voidmain(){ printf(MIN(6,9)=%d\n,((69)?(6):(9))); printf(MIN(7.1,5.9)=%f\n,((7.15.9)?(7.1):(5.9))); printf(MIN(a,d)=%c\n,((ad)?(a):(d)));}#defineMIN(a,b)((ab)?(a):(b))voidmain(){ printf(MIN(6,9)=%d\n,MIN(6,9)); printf(MIN(7.1,5.9)=%f\n,MIN(7.1,5.9)); printf(MIN(a,d)=%c\n,MIN(a,d));}宏替换后的结果:求两数的最小值可以采用函数来实现,采用宏定义有何好处?(1)宏定义无类型要求,只需要定义一个宏即可。如果采用函数来实现,整型、实型、字符型需要分别定义一个函数。(2)宏替换在程序运行之前完成,不占用运行时间。而函数调用是在程序运行时进行的。【程序讨论】如果改成:#defineMIN(a,b)ab?a:b则下面语句的执行结果是什么?printf(%d\n,5+MIN(6,9));该语句展开后的结果如下:printf(%d\n,5+69?6:9);所以,输出结果为9。有参数的宏定义中,整个宏体和每个形参最好都用圆括号括起来。【例9-3】在宏定义的字符串中使用已经定义过的宏名。#includestdio.h#defineR3.0#definePI3.1415926#defineL(2*PI*R)#defineS(PI*R*R)voidmain(){ printf(L=%f\nS=%f\n,L,S);}9.2文件包含有以下两种使用格式: #include文件名 #include文件名将指定的文件嵌入到该命令处,以替换此命令行。两种使用格式的区别如下:尖括号内的文件一般是编译系统的头文件,预处理程序会直接到编译系统设定的头文件目录中去查找。双引号内的文件一般是用户编写的文件,预处理程序会先到源程序所在的目录中去查找,如果没有,再到编译系统设定的目录中去查找。9.3案例中的宏定义与文件包含一个大型程序通常由多个模块组成,并且由多个程序员分头编写,这样可以把一些公用的符号常量、结构体的定义、全局变量的声明、自定义函数的声明等统一放在一个头文件中。程序员在需要时,只需在文件的开头包含该头文件即可,避免每个程序员都要进行重复的定义。【例9-4】在学生信息管理系统中,定义了一个头文件student.h,其中包含:宏定义(MAX_N)、学生结构体(structstu_type)的定义、学生人数全局变量(stu_num)的声明、学生全局数组(stu[])的声明、add()等自定义函数的声明。在main.c、add.c等源文件中只需要包含该头文件即可。student.h文

文档评论(0)

yzs890305 + 关注
实名认证
内容提供者

计算机二级持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档