C语言程序设计案例教程 教学课件 ppt 作者 杨旭 第9章

上传人:E**** 文档编号:89355025 上传时间:2019-05-23 格式:PPT 页数:9 大小:311KB
返回 下载 相关 举报
C语言程序设计案例教程 教学课件 ppt 作者  杨旭 第9章_第1页
第1页 / 共9页
C语言程序设计案例教程 教学课件 ppt 作者  杨旭 第9章_第2页
第2页 / 共9页
C语言程序设计案例教程 教学课件 ppt 作者  杨旭 第9章_第3页
第3页 / 共9页
C语言程序设计案例教程 教学课件 ppt 作者  杨旭 第9章_第4页
第4页 / 共9页
C语言程序设计案例教程 教学课件 ppt 作者  杨旭 第9章_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C语言程序设计案例教程 教学课件 ppt 作者 杨旭 第9章》由会员分享,可在线阅读,更多相关《C语言程序设计案例教程 教学课件 ppt 作者 杨旭 第9章(9页珍藏版)》请在金锄头文库上搜索。

1、第 9 章 编译预处理,本章要点 9.1 宏 定 义 9.2 文件包含 9.3 条件编译 习题 9,9.1.1 不带参数的宏定义 不带参数的宏定义形式如下: #define 标识符 表达式 不带参数的宏定义中的表达式可以是任意的常量,例如: #define NULL 0 #define EOF (-1) /* 括号不可省略 */ #define TRUE 1 #define FALSE 0 #define PI 3.14 #define TEXT unsigned char /* 将unsigned char类型用TEXT来表示 */ 注意:#define 定义时,不能重复相同的宏名定义。 宏

2、定义完成后,在程序编译时将会用后面表达式中的常量去替换宏定义的标识符 。,9.1 宏 定 义,9.1.2 带参数的宏定义 在带参数的宏定义中,宏替换名可以带有形式参数,在程序中用到时,实际参数会代替这些形式参数。 带参数的宏定义形式如下: #define 宏名(参数表) 表达式 编译预处理时,系统会将程序中出现宏名和参数表的地方用后边的带参数的表达式进行替换 。 9.1.3 宏的作用范围 宏也具有一定的作用范围,默认情况下,宏的作用范围从定义点开始,到程序源文件的末尾。 如果要在中途取消宏,可以使用命令#undef取消。,9.1 宏 定 义,9.1.4 宏定义与函数的区别 可以看出,带参数的宏

3、定义有些像函数调用,但两者是不同的。 带参数的宏定义与函数的区别如下: 宏定义仅是对字符串进行简单替换,而函数调用则是按程序的含义来替换形式参数; 宏定义仅能用于简单的单行语句替换,而函数可用于复杂运算; 宏定义仅占用编译时间,不占用运行时间,执行速度快,而函数调用、参数的传递等,都要占用内存开销; 宏定义在编译时展开,多次使用会让源程序增大,而函数调用不管多少次总占用相同的源程序空间; 宏的作用范围从定义点开始,到程序源文件的末尾或使用命令#undef取消定义之前。 总的来说,当语句较简单时,可考虑使用宏定义,从程序执行的速度来说,它优于函数。,9.1 宏 定 义,一个大型的程序通常都是分为

4、多个模块,由不同的程序员编写,最终需要将它们汇集在一起进行编译。 另外,在程序设计中,有一些程序代码会经常使用,例如程序中的函数、宏定义等。 为了方便代码的重用和包含不同模块文件的程序,C语言提供了文件包含的方法。 文件包含用于在一个文件中包含另一个源程序文件,前面所用到的stdio.h和string.h等头文件引用都是用包含文件预处理来完成的。 文件包含的意思是源程序中包含另一个源程序文件,如图9.2所示。 在图9.2中,文件abc.c中的包含语句将文件stdio.h中的内容全部添加到文件abc.c中,这就是文件包含的实质。,9.2 文件包含,9.2 文件包含,图9.2 文件包含,文件包含的

5、语句格式如下: #include “文件名“ #include 两种形式的区别在于:前者先在源文件所在目录中寻找被包含文件,如果找不到再搜索系统目录。后者仅对系统目录进行搜索。一般使用双引号比较全面。 C编译系统提供了大量的可供包含的文件,这些文件都以“.h”为后缀,称为C语言的头文件,通常包含在系统目录的include目录下,例如我们前面所用到的stdio.h和string.h等。这些头文件也都是C语言的源文件,只不过是后缀名不同。 文件包含不仅用于标准头文件,也可用于自定义的文件。 文件包含还可将多个程序模块共用的函数或数据集合到一个单独的文件中,凡是需要用到这些函数或数据的程序,只要将这

6、个文件包含进来就可以了,方便了程序的共享。 需要注意的是,文件包含在进行预处理时,被包含文件与引用它的程序是作为一个统一的文件进行编译,只生成一个目标文件。当被包含文件改变时,源文件也必须重新编译。,9.2 文件包含,9.3.1 条件编译的意义 条件编译是指在特定的条件下,对满足条件和不满足条件的情况进行分别处理满足条件时编译某些语句,不满足条件时编译另一些语句。 条件编译指令常用于程序的移植等方面,与系统编译环境相关。在编译前先对系统环境进行判断,再进行相应的语句编译。 9.3.2 条件编译语句 C语言提供了丰富的条件编译语句,下面我们来遂一进行学习。 1#if,#elif,#else和#endif #if用于对程序进行部分编译,用法与选择语句if相似。 #elif的作用类似于else if,用于产生多重条件编译。 #endif用于结束条件编译,编译时与前面最近的#if作为一对,编译两者之间的部分程序段。 条件编译有3种形式,如下所示。,9.3 条件编译,(1)#if #endif #if 表达式 程序段 #endif (2)#if#else #if 表达式 程序段1 #else 程序段2 #endif (3)#if#elif #if 表达式1 程序段1 #elif 表达式2 程序段2 #else表达式n 程序段n #endif,9.3 条件编译,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号