C语言-第7章编译预处理

C语言-第7章编译预处理

ID:40840977

大小:213.01 KB

页数:13页

时间:2019-08-08

C语言-第7章编译预处理_第1页
C语言-第7章编译预处理_第2页
C语言-第7章编译预处理_第3页
C语言-第7章编译预处理_第4页
C语言-第7章编译预处理_第5页
资源描述:

《C语言-第7章编译预处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章编译预处理预处理:是指在进行编译之前所作的工作。预处理由预处理程序负责完成。当对一个源文件进行编译时,编译系统将自动引用预处理程序对源程序中的预处理命令作处理,处理完毕后自动进入对源程序的编译。预处理命令:#define,#undef,#include,#else,#error……预处理命令行可位于程序中任意位置预处理命令行的作用域:定义位置开始到文件结尾7.1宏定义:#define7.2文件包含:#include第7章编译预处理宏定义是由源程序中的宏定义命令完成的。在C语言中,“宏”分为有参数宏和无参宏两种。7.1宏定义:#define如:无参宏#definePI3.1415

2、926如:有参宏#defineAS(x,y,z)x+y+z无参宏定义一般形式:#define宏名宏体define:宏定义命令宏名:由标识符定义宏体:为一字符串(常量、表达式、格式串等)define、宏名、宏体之间用空格隔开宏调用格式:宏名宏替换:编译预处理时进行宏展开,对宏定义命令行后出现的宏名用宏体代替。#definePI3.1415926main(){floata,s,r;printf("Inputradiusr:");scanf("%f",&r);a=2*PI*r;s=PI*r*r;printf("r=%10.4fa=%10.4fs=%10.4f",r,a,s);}

3、宏替换后:a=2*3.1415926*r;s=3.1415926*r*r;实例宏调用宏替换时只是简单地以宏体取代宏名,预处理程序并不作语法检查。如有错误,只能在编译时发现。#definePI3.141593;……L=2*PI*r;宏展开后,该语句为:L=2*3.141593;*r;宏名在源程序中若用引号引起来,则预处理程序不对其作宏代换。如:#defineno220main(){printf(“no”);}说明出错不替换宏定义可以嵌套:在宏体中可以使用已经定义的宏名。在宏展开时由预处理程序层层代换。以下程序中的for循环执行的次数是()。#defineN2#defineMN+1#de

4、fineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf(“%d”,i);}A.5B.6C.7D.8说明思考#defineMy*y+3*ymain(){ints,y;printf("inputanumber:");scanf("%d",&y);s=3*M+4*M+5*M;printf("s=%d",s); }y*y+3*yy*y+3*yy*y+3*y(y*y+3*y)(y*y+3*y)(y*y+3*y)继续理解带参宏定义一般形式:#define宏名(形参表)宏体宏调用:宏名(实参表)宏替换:编译预处理时用宏体代换带参宏,同时用实参代换

5、形参例如:#defineAS(x,y,z)x+y+z……sum=AS(3,4,5);宏替换后:sum=3+4+5;宏定义时,在宏名与带参数的括号之间不能有空格,否则将空格以后的字符都作为宏体.例如:#defines(r)PI*r*r下列程序执行后的输出结果是()。#defineMA(x)x*(x-1)main(){inta=1,b=2;printf(“%d”,MA(1+a+b));}A.6B.8C.10D.12说明思考是指一个源文件可将另一个源文件的全部内容包含进来一般形式:#include“文件名”或#include<文件名>所包含的文件可以是标准文件或用户自定义文件例如:#i

6、nclude“math.h”7.2文件包含#include命令行一般放在程序开头。一个程序中,允许有任意多个预编译命令行预编译时,预处理程序把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。/*文件4.c*/floatave(floata[],intn){intk;floataver,sum=a[0];for(k=1;k

7、"%f",&s[k]);printf("%5.2f",ave(s,5));}说明本章小结本章介绍的预编译功能(宏定义、文件包含、条件编译)是C语言特有的,有利于程序的可移植性,增加程序的灵活性。C语言中的宏定义分为两种:不带参数的宏定义和带参数的宏定义。使用标准库函数时,应当包含相应的头文件。也可设计自己的头文件,将常用内容包含进去。

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

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

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