第10章编译预处理和分割编译.ppt

上传人:本田雅阁 文档编号:3122335 上传时间:2019-07-13 格式:PPT 页数:13 大小:128.03KB
返回 下载 相关 举报
第10章编译预处理和分割编译.ppt_第1页
第1页 / 共13页
第10章编译预处理和分割编译.ppt_第2页
第2页 / 共13页
第10章编译预处理和分割编译.ppt_第3页
第3页 / 共13页
第10章编译预处理和分割编译.ppt_第4页
第4页 / 共13页
第10章编译预处理和分割编译.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《第10章编译预处理和分割编译.ppt》由会员分享,可在线阅读,更多相关《第10章编译预处理和分割编译.ppt(13页珍藏版)》请在三一文库上搜索。

1、第10 章 编译预处理和分割编译,10,内容提要,本章主要介绍C程序设计中经常使用的编译预处理命令,以及对源程序进行分割编译的方法。 编译预处理是对C源程序编译前进行的一些预加工,如置换源程序文件中的特定标识符,或是把指定的头文件嵌入到被编译的源文件里等操作。 编译预处理是C语言的一个重要特点。它能改善程序设计环境,有助于编写易移植、易调试的程序,也是模块化程序设计的一个工具。,宏定义,宏定义是用标识符代替一个字符串,从而使程序更加简洁。 1. 不带参数的宏定义 2. 带参数的宏定义 3. 宏定义的解除,文件包含,文件包含的功能是把一个指定文件的全部内容嵌入到另一个文件中。 1. 文件包含的一

2、般格式 文件包含的一般格式如下: #include 或 #include “文件名“,条件编译,条件编译的功能是只对源程序中的必要部分进行编译,而对其余部分不进行编译,不产生目标代码。在编译源文件之前,根据给定的条件,决定编译的范围,可使程序适应不同系统和不同硬件。 1. 条件编译的形式 2. 条件编译的功能,分割编译,在分割编译中,各独立的源文件构成一个编译单位,对它们各自进行编译,生成多个目标文件后再一次性连接。 分割编译的各编译单位之间彼此独立,但更重要的是它们又互相联系。,本章总结,本章应重点掌握编译预处理的概念 编译预处理命令的功能和特点,宏定义和文件包含的使用。,本章习题,一、选择

3、题 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 P

4、I 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

5、 7. 以下程序的输出结果是_。 #define M(x,y,z) x*y+z main() int a=1,b=2,c=3; printf(“%dn“,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(“%dn“,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)/S

6、QR(k+m); printf(“%dn“,a); A. 10 B. 1 C. 9 D. 0,二、填空题 1. 下面程序的输出结果是_。 #define PR(ar) printf(“%d“,ar) main() int j,a=1,3,5,7,9,11,13,15,*p=a+5; for(j=3;j;j-) switch(j) case 1: case 2: PR(*p+); break; case 3: PR(*(-p); ,2. 下面程序的输出结果是_。 #define POWER(x) (x)*(x) main() int a=1,b=2,t; t=POWER(a+b); printf(“%dn“,t); 3. 以下程序的输出结果是_。 #define MAX(x,y) (x)(y)?(x):(y) main() int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(“%dn“,t): ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1