C语言教案 第九章编译预处理新

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1主要内容:§9.1宏定义§9.2文件包含第九章编译预处理2第九章编译预处理所谓预处理就是C语言的编译系统在对程序进行通常的编译之前,先对这些特殊的命令进行预处理,然后将预处理的结果和源程序一起再进行通常的编译处理,以得到目标代码。C语言的预处理主要有以下三种:1.宏定义#define2.文件包含#include3.条件编译#if--#else--#endif等C的编译预处理命令格式:以“#”开头占单独书写行语句尾不加分号3§9.1宏定义宏定义以#define开头,当程序中多次使用某一常量或某一字符串时,可以使用宏定义以使程序书写简单。如有:#defineM10在程序中可以用10取代所有的M。使用宏定义有两个注意事项:一是宏定义与函数不同;二是对于带参的宏,务必要进行宏替换后再分析程序的运行结果。4一、不带参的宏定义格式:#define宏名宏体宏展开:在预编译时将宏名替换成宏体(字符串),这个过程称为宏展开(宏替换)。说明:(1)宏名一般用大写字母表示以便与变量分开,但不是规定而只是习惯。(2)宏定义不是C语句,末尾不加分号。(3)程序中双引号中的宏名不进行宏替换。5无参的宏定义使用举例#defineM10main(){intj,a[M];for(j=0;jM;j++)a[j]=j+1;for(j=0;jM;j++)printf(%6d,a[j]);}无参宏定义中的宏名M,系统是作为符号常量来处理的,因此可以用来定义数组。6二、带参数的宏定义格式:#define标识符(参数表)字符串说明:(1)参数表中的参数必须为变量,称为形参。(2)带参的宏定义展开是从左到右依次将实参字符串代替形参字符串。(3)在宏定义时,宏名与带参的括号之间不应留空格,括号后面一定要留空格。7带参的宏定义使用举例#defineS(x,y)x*ymain(){inta=3,b=4,c=5,d=6;printf(a*b=%d\n,S(a,b));printf(a+b*c+d=%d\n,S(a+b,c+d));}a*b);a+b*c+d));带参的宏定义在分析程序之前先进行宏展开,S(a+b,c+d)展开时用a+b代替x,用c+d代替y,展开的结果为:a+b*c+d8带参的宏定义使用举例#defineS(x,y)x*ymain(){inta=3,b=4,c=5,d=6;printf(a*b=%d\n,S(a,b));printf(a+b*c+d=%d\n,S((a+b),(c+d)));}a*b(a+b)*(c+d));带参的宏定义在分析程序之前先进行宏展开,S((a+b),(c+d))展开时用(a+b)代替x,用(c+d)代替y,展开的结果为:(a+b)*(c+d)9带参的宏定义使用举例#defineS(x,y)x*ymain(){inta=3,b=4,c=5,d=6;intk;k=S(a+b,c+d)/S(a+b,c+d);printf(%d\n,k);}S(a+b,c+d)展开结果为:a+b*c+d/a+b*c+d=3+4*5+6/3+4*5+6=3+20+2+20+6=5110§9.2文件包含所谓文件包含是指一个源文件可以将另外一个源文件的全部内容包含进来,使另外的文件成为本文件的一部分。TurboC提供了#include命令来实现文件包含操作。TurboC提供了大量的库函数,在用户使用这些库函数之前,应当使用文件包含命令将相应的头文件包含到当前源程序中。11一、文件包含的意义使用文件包含可以避免程序设计中的重复劳动。12二、文件包含的格式及用法格式:#include“文件名”#include文件名在当前目录和指定目录下搜索被包含的文件。一般用于包含用户自己编写的文件。只在指定目录下搜索被包含的文件。一般用于调用库函数。系统到存放c库函数头文件的目录中寻找要包含的文件,称为标准方式系统先到用户当前目录中寻找要包含的文件,若找不到,再按标准方式找13三、文件包含的一些说明说明:1.一个#include命令只能包含一个文件。2.一个源程序中可以使用多个#clude命令包含多个文件。3.被包含的文件中还可以包含其它文件。14三、文件包含的一些说明file1.c#include“file2.h”file2.h#include“file3.h”file3.h同一个文件中可以包含多个文件file2.h中后缀.h可以改为.c也可以没有后缀。15三、文件包含的一些说明file1.c#include“file2.h”file2.h#include“file3.h”file3.h被包含的文件中还可以包含其它文件

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功