欢迎来到天天文库
浏览记录
ID:43187687
大小:172.50 KB
页数:16页
时间:2019-10-02
《C语言编程教程 第9章 预处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、预处理教学要点编译预处理宏定义文件包含条件编译编译预处理一、含义:编译预处理是C编译系统的一个组成部分。二、目的:将预处理的结果和源程序一起再进行通常的编译处理,以得到目标代码。三、实现方法:通过使用几种特殊的命令,在进行程序的编译之前,先对这些特殊命令进行处理。四、主要内容:1.宏定义;2.文件包含;3.条件编译.宏定义一、不带参数的宏定义:1、含义:用一个指定的标识符来表示一个字符串。2、格式:#define标识符字符串其中:“标识符”被称为宏。3、作用:使用户能以一个简单的名字代替一个长的字符串。4
2、、实现:在预编译时将宏名替换成字符串(宏展开)。如:#definePI3.14159在程序中将标识符PI代替为“3.1415”这个字符串。5、例9-1:6、使用要点:例9-1:分析下列的程序:1.宏名一般都用大写字母表示,以区别于变量;2.宏定义只是用宏名替代一个字符串,减少了在程序中书写某些字符串的工作量;3.宏定义不是语句,不必再其后加上“;”;4.#define命令出现在函数的外面,它的有效范围是定义之后到本源文件的结束;5.可以使用#undef命令终止宏定义的有效范围;宏定义要点6.在宏定义中可以
3、进行多层的替代.二、带参数的宏定义1、定义:#define宏名(参数表)字符串2、作用:不只是进行简单的字符串替换,还要进行参数的置换。3、例9-2、9-3:4、宏展开过程的要点:对于带参数的宏的展开就是用实际参数代替宏定义时的形式参数;在宏定义时,宏名与带参数的括号之间不应加空格,否则,空格也作为字符的组成部分;例9-2带参数的宏定义#defines(a,b)a*b….area=s(3,2);area=S(3,2)得3*2#defineS(a,b)a*b例9-3:分析程序写出结果.文件包含1、含义:将一
4、个源文件的内容完全包含在另一个文件之中.2、一般形式:#include“文件名”(或<文件名>)3、功能:可以减少程序设计人员的重复劳动。4、例9-4:5、使用要点:#include“flie2.c”Afile1.cBfile2.cBAfile1.c例9-4:分析程序写出结果:file.hfile.c1、一个#include命令只能指定一个被包含的文件,若要包含n个文件,应使用n个#include命令;2、若文件1包含文件2,而文件2中要用到文件3的内容,则可在文件1中用2个#include命令分别包含文
5、件2和文件3,而且文件3应出现在文件2之前,如下表示:file1.c#include“file3.h”#include“file2.h”...文件包含要点3、文件包含可以嵌套。4、“”与<>在#include中的区别:使用“”时,系统若在源程序文件目录中找不到被包含的文件,则将按系统指定的标准方式检索其他目录;使用<>时,系统只按指定的标准方式检索其他目录;5、预编译后的包含文件和源程序文件成为一个文件,所有的extern变量将成为源程序文件中的全局静态变量。条件编译一、引入条件编译的原因:只对源程序中满
6、足条件的部分内容进行编译。可以减少被编译的语句,从而减少目标程序的长度。二、定义形式:方式1:#ifdef标识符程序段1#else程序段2#endif三、例9-5:方式2:#ifndef标识符程序段1#else程序段2#endif方式3:#if表达式程序段1#else程序段2#endif例9-5:分析程序写出结果:
此文档下载收益归作者所有