荆州职业技术学院C语言程序设计课件.ppt

荆州职业技术学院C语言程序设计课件.ppt

ID:57033340

大小:108.00 KB

页数:17页

时间:2020-07-27

荆州职业技术学院C语言程序设计课件.ppt_第1页
荆州职业技术学院C语言程序设计课件.ppt_第2页
荆州职业技术学院C语言程序设计课件.ppt_第3页
荆州职业技术学院C语言程序设计课件.ppt_第4页
荆州职业技术学院C语言程序设计课件.ppt_第5页
资源描述:

《荆州职业技术学院C语言程序设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章预处理命令编译预处理:在源程序文件中,加入“编译预处理命令”,使编译程序在对源程序进行通常的编译(包括词法分析、语法分析、代码生成、代码优化)之前,先对这些命令进行预处理,然后将预处理的结果和源程序一起再进行通常的编译处理,以得到目标代码(OBJ文件)。C提供的编译预处理命令宏命令(Macro)文件包含命令(include)条件编译命令这些命令均以#开头,以区别于语句。7/27/20211荆州职业技术学院信息技术系9.1宏(Macro)定义一、不带参数的宏一般形式:#define标识符字符串如:#defi

2、nePI3.1415926作用:用标识符(称为“宏名”)PI代替字符串“3.1415926”。在预编译时,将源程序中出现的宏名PI替换为字符串“3.1415926”,这一替换过程称为“宏展开”。#define:宏定义命令#undef:终止宏定义命令7/27/20212荆州职业技术学院信息技术系[例]PI3.1415926main(){floatl,s,r,v;printf("inputradius:");scanf("%f",&r);/*输入圆的半径*/l=2.0*PI*r;/*圆周长*/s=PI*r*r;/*

3、圆面积*/v=4.0/3.0*PI*r*r*r;/*球体积*/printf("l=%10.4fs=%10.4fv=%10.4f",l,s,v);}7/27/20213荆州职业技术学院信息技术系关于宏定义的说明:1、一般宏名用大写字母表示。(变量名一般用小写字母)。2、使用宏可以提高程序的可读性和可移植性。如上述程序中,多处需要使用π值,用宏名既便于修改又意义明确。3、宏定义是用宏名代替字符串,宏扩展时仅作简单替换,不检查语法。语法检查在编译时进行。4、宏定义不是C语句,后面不能有分号。如果加入分号,

4、则连分号一起替换。如:#definePI3.1415926;area=P*r*r;在宏扩展后成为:area=3.1315926;*r*r;结果,在编译时出现语法错误。7/27/20214荆州职业技术学院信息技术系5、通常把#define命令放在一个文件的开头,使其在本文件全部有效。(#define定义的宏仅在本文件有效,在其它文件中无效,这与全局变量不同)。6、宏定义终止命令#undef结束先前定义的宏名。#defineG9.8main(){}#undefG/*取消G的意义*/f1()┆7/27/20215荆州

5、职业技术学院信息技术系7、宏定义中可以引用已定义的宏名。[例8.2]#defineR3.0#definePI3.1415926#deinfeL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f",L,S);}8、对程序中用双引号括起来的字符串,即使与宏名相同,也不替换。例如上例的printf语句中,双引号括起来L和S不被替换。7/27/20216荆州职业技术学院信息技术系二、带参数的宏一般形式:#define宏名(参数表)字符串带参数的宏在展开时,不是进行简单的字符串

6、替换,而是进行参数替换。例、7/27/20217荆州职业技术学院信息技术系[例]#definePI3.1415926#defineS(r)PI*r*rmain(){floata,area;a=3.6;area=S(a);printf("r=%farea=%f",a,area);}说明:带参数的宏展开时,用实参字符串替换形参字符串,注意可能发生的错误。比较好的办法是宏定义的形参加括号。7/27/20218荆州职业技术学院信息技术系7/27/20219荆州职业技术学院信息技术系[例]返回多个值的宏定义。#d

7、efinePI3.1415926#defineCIRCLE(R,L,S,V)L=2*PI*R;S=PI*R*R;V=4/3*PI*R*R*Rmain(){floatr,l,s,v;/*半径、圆周长、圆面积、球体积*/scanf("%f",&r);CIRCLE(r,l,s,v);printf("r=%6.2f,l=%6.2f,s=%6.2f,v=%6.2f",r,l,s,v);}输出结果:7/27/202110荆州职业技术学院信息技术系9.2文件包含(#include)文件包含命令的一般格式是:#includ

8、e“文件名”作用:预处理时,把“文件名”指定的文件内容复制到本文件,再对合并后的文件进行编译。例、7/27/202111荆州职业技术学院信息技术系在file1.c文件中,有文件包含命令#include"file2.c",预处理时,先把file2.c的内容复制到文件file1.c,再对file1.c进行编译。从理论上说,#include命令可以包含任何类型的文件,只要这些文件的内容被扩展

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。