1、LOGOLOGO第9章 编译预处理CONTENTS 目 录提出问题 引入新课自主学习 明确考点案例分析 明确新知仿真演练 体验探索课后作业 自我提升思考1、C语言在编译过程如何减少其编译扫描时间?2、C语言中如要引用头文件,通常用什么命令指定?格式1中使用尖括号是通知预处理程序,按系统规定的标准方式检索文件目录。例如,使用系统的PACH命令定义了路径,编译程序按此路径查找filename,一旦找到与该文件名相同的文件,便停止搜索。如果路径中没有定义该文件所在的目录,即使文件存在,系统也将给出文件不存在的信息,并停止编译。格式1:#include 格式2:#include filename格式2
2、中使用双引号 是通知预处理程序首先在原来的源文件目录中检索指定的文件filename;如果查找不到,则按系统指定的标准方式继续查找。考点一:文件包含命令源文件test1.cmain()int a,b,c,s,m;printf(“na,b,c=?”);scanf(“%d,%d,%d”,&a,&b,&c);s=sum(a,b,c);m=mul(a,b,c);printf(“The sum is%dn”,s);printf(“The mul is%dn”,m);源文件test2.cint sum(int p1,int p2,int p3)return(p1+p2+p3);源文件test3.cint
3、mul(int p1,int p2,int p3)return(p1*p2*p3);printf(“The sum is%dn”,s);printf(“The mul is%dn”,m);标题源文件test1.c的内容如下所示。#include test2.c#include test3.c main()int a,b,c,s,m;printf(“na,b,c=?”);scanf(“%d,%d,%d”,&a,&b,&c);s=sum(a,b,c);m=mul(a,b,c);printf(“The sum is%dn”,s);printf(“The mul is%dn”,m);一般格式:#if#
4、else#endif 1.#if形式2.#ifdef形式或#ifndef形式一般格式:#ifdef(或#ifndef)#else#endif考点二:条件编译案例分析三、案例分析 交流提升程序中头文件typel.h的内容是:#define N 5#define M1 N*3 程序如下:#include typel.h#define M2 N*2 main()int i;i=M1+M2;printf(%dn,i);三、案例分析 交流提升#include main()int a=10,b=20,c;c=a/b;#ifdef DEBUC printf(”a=%d,b=%d,”,a,b);#endif
5、printf(”c=%dn”,c);仿真演练,体验探索仿真演练,体验探索1、有如下两个源文件:源文件 filel.h:int a;int cal(int x,int y)return(x*y+a)源文件 files.c#include“stdio.h”#include“file.h”main()extern int a;a=5;printf(“%d”,cal(3,3);则下面的说法中正确的是()(A)此程序的输出结果为14。(B)此程序有且仅有一处错误,改正的方法是将extern int a;语句移到主函数的外边。(C)此程序有且仅有两处错误,改正的方法是将estern int a;语句移动到
6、主函数的外边并在主函数内添加说明语句:extern cal();(D)此程序有且仅有一处错误,改正的方法是将extern int a;语句删除。CYBER PUNK输入一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写输出。#define LETTER 1 main()char str20=“C language”,c;int i;i=0;while(c=stri)!=0)i+;#if LETTER if(ca&c=A&c=z)c=c+32;#endif printf(“%c”,c);课后作业 自我提升【1】上机演练上述程序并写好总结。【2】完成本节指定的课后练习题谢谢聆听谢谢聆听