C语言课件十章--编译预处理和分割编译.pptVIP

C语言课件十章--编译预处理和分割编译.ppt

  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文档。上传文档
查看更多
第10 章 编译预处理和分割编译 内容提要 本章主要介绍C程序设计中经常使用的编译预处理命令,以及对源程序进行分割编译的方法。 ?编译预处理是对C源程序编译前进行的一些预加工,如置换源程序文件中的特定标识符,或是把指定的头文件嵌入到被编译的源文件里等操作。 编译预处理是C语言的一个重要特点。它能改善程序设计环境,有助于编写易移植、易调试的程序,也是模块化程序设计的一个工具。 宏定义 宏定义是用标识符代替一个字符串,从而使程序更加简洁。 1. 不带参数的宏定义 2. 带参数的宏定义 3. 宏定义的解除 文件包含 文件包含的功能是把一个指定文件的全部内容嵌入到另一个文件中。 1. 文件包含的一般格式 文件包含的一般格式如下: #include 文件名 或 #include 文件名 条件编译 条件编译的功能是只对源程序中的必要部分进行编译,而对其余部分不进行编译,不产生目标代码。在编译源文件之前,根据给定的条件,决定编译的范围,可使程序适应不同系统和不同硬件。 1. 条件编译的形式 2. 条件编译的功能 分割编译 在分割编译中,各独立的源文件构成一个编译单位,对它们各自进行编译,生成多个目标文件后再一次性连接。 分割编译的各编译单位之间彼此独立,但更重要的是它们又互相联系。 本章总结 本章应重点掌握编译预处理的概念 编译预处理命令的功能和特点,宏定义和文件包含的使用。 本章习题 一、选择题 1. 以下说法中正确的是____。 A. #define和printf都是C语句 B. #define是C语句,而printf不是 C. printf是C语句,但#define不是 D. #define和printf都不是C语句 2. 以下关于编译预处理的叙述中,错误的是____。 A. C源程序中凡是以“#”开始的控制行都是预处理命令行 B. 预处理命令行必须位于源程序的开始位置 C. 一条有效的预处理命令行必须独占一行 D. 预处理命令是在正式编译之前先被处理的 3. 宏定义的宏展开是在______阶段完成的。 A. 程序编辑 B. 程序编译 C. 程序执行 D. 预编译 4. 在宏定义 #define PI 3.14159中,宏名PI代替一个____。 A. 单精度数 B. 双精度数 C. 常量 D. 字符串 5. 下面程序的运行结果是____。 #define PI 3.141593 main() { printf(PI=%f,PI); } A. 3.141593=3.141593 B. PI=3.141593 C. 3.141593=PI D. 以上答案都不正确 6. 若有以下宏定义: #define STR %d,%c #define A 97 已知字符a的ASCII码值为97,则语句printf(STR,A,A+2);的输出结果为____。 A. 97,a B. 97,b C. 97,c D. 97,d 7. 以下程序的输出结果是____。 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf(%d\n,M(a+b,b+c,c+a)); } A. 19 B. 17 C. 15 D. 12 8. 下列程序执行后的输出结果为____。 #define MA(x) x*(x-1) main() { int a=1,b=2; printf(%d\n,MA(1+a+b)); } A. 6 B. 8 C. 10 D. 12 9. 执行下面的程序后,a的值是____。 #define SQR(X) X*X main() { int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(%d\n,a);

文档评论(0)

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

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

1亿VIP精品文档

相关文档