第9章预处理命令.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章预处理命令

* 第10章 预处理命令 (1)不带参数的宏定义:用来指定的标识符来代表一个字符串 例: #define PI 3.141592 r=3.0 s=PI*r*r s1=2*PI*h 例:#define M 20 int a[M] char cc[M][10] float b[M]; 例: #define N 30 for(i=0;iN;i++) for(j=0;jN-1;j++) 一、不带参数的宏定义 2.宏定义用得较多的地方 PI用3.141592替换 定义格式:#define 标识符 字符串 (4)宏名无类型,不能替换引号内的字符 (2)宏替换只占用编译时间,不占用运行时间 (1)预处理命令都必须以#号开始,末尾不加分号,不是C语句 说明 (3)#define可以在程序的任何位置,但必须在一行的开头,它的有效范围在定义后到文件结束,也可用#undef结束。 #define H 313567.0 main() { float a=2,b=3,s1,s2; char cc[4]=“ABHH” S1=b+H*H+a*b; S2=3*H+2*a; printf(“%f %s s3=%s H=%f”,s1,s2,s3,H); #undef H;} 双引号的H不能替换 例:1 以下程序段输出结果是 #define X 5 #define Y X+1 #define Z 3*Y printf(“%d\n”,Z”); 16 例:2 以下程序段输出结果是 #define X 5 #define Y X+1 #define Z Y*X/2 printf(“%d\n”,Z”); 7 例 3 如下程序中for循环执行的次数是: #define N 2 #define M N+1 #define NUM 2*M+1 main() {int i; for(i=1;i=NUM;i++) printf(“%d\n”,i);} A) 5 B)6 C)7 D)8 #define S(a,b) a*b area=S(3,2)=3*2=6 area=S(5*2,9/2)=(5*2)*9/2 二、带参数的宏定义 这里只是简单的字符替代。 例:#define POR(x) ((x)*(x)) int x=5,y=3,z; z=POR(x+y); printf(“z=%d”,z); #define 宏名(参数表)  字符串 如定义成:#define POR(x) x*x 则printf(“z=%d”,z); 64 23 写出如下结果: #define ADD(x) x+x int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(“sum=%d”,sum); 10 写出如下结果: #define MA(x) x*(x-1) main() int a=1,b=2; printf(“%d”,MA(1+a+b); 8 以下叙述中正确的是 A)对#define C R 45定义中C R是“宏名”的标识符 B)预处理命令行必须以”#”开始 C)使用带参的宏时,参数的类型应与宏定义时的一致 D)宏替换只占用程序的编译时间 6.以下程序的输出结果是 #define f(x) x*x main( ) { int a=6,b=2,c; c=f(a) / f(b); printf(%d \n,c); } A)?9 B)?6 C.)?36 D)?18 写出如下结果: #define SQR(x) x*x main() int a,K=3; a=++SQR(k+1) printf(“%d”,a); A)16 B)9 C)8 D)17 三、文件包含 文件包含:通过#include把已进入系统的另一个文件的整个内容嵌进来。 格式2 #include 文件名 预处理程序只按标准方式检索文件目录。 格式1 #include “文件标识” 预处理程序先在源文件目录中检索该指定的文件;如果未找到,则再按标准方式检索其它文件目录,直到找到为止。 说明: (1)#include命令行所包含的头的文件其后缀名不一定 用”.h”。 (2)当包含文件被修改后,对包含该文件的源程序必须 重新编译。 (3)在一个程序中,允许有任意多个#include命令行 (4)包含文件中还可以包含其它文件。 * * *

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档