7.2 “文件包含”处理
在前面各章多次用到了# include命令,这个命令用来实现“文件包含”,其作用是将一个源文件的全部内容包含进另一个源文件中来。被包含的文件可以是C语言源文件、库函数头文件等。
由于#include命令通常都放在文件的开头,所以这些被包含的文件通常被称为“标题文件”或“头文件”,这些文件常以“.h”(h为head的首字母)为文件的扩展名。当然也可以用其它文件扩展名,但无论用什么扩展名,这个被包含文件必须是文本文件。
C集成环境为用户提供了许多库函数,每一个库函数都有自己对应的头文件,若要使用一些库函数中定义的数据和变量,必须要在程序中使用# include命令将该库函数所对应的头文件包含进来,否则,程序在编译时就会报错。
文件包含的使用格式如下:
#include "文件名" 或
#include <文件名>
使用"文件名"格式时,预处理程序首先检索当前文件目录是否有该文件,如果没有,再检索C编译系统指定的目录。
使用<文件名>格式时,预处理程序直接检索C编译系统指定的目录。
使用"文件名"时,文件名前面可添加路径,如:
#include "c:\vc++\include\math.h"
常用的标准库头文件的扩展名都是.h,如下所示:
#include <stdio.h> /*标准输入输出函数库文件*/
#include <string.h> /*字符串函数库文件*/
#include <ctype.h> /*字符函数库文件*/
#include <math.h> /*数学函数库文件*/
使用“文件包含”命令,可以减少程序设计人员的工作量,可以提高编程效率。
关于文件包含的3点说明:
(1) 一个#include命令只能指定一个被包含文件。就是说,如果要包含n个文件,必须用n个#include命令。
(2) 假设“f1.c”、“f2.c”、“f3.c”是3个不同的文件,若在“f1.c”中有如下两行命令。
#include <f3.c>
#include <f2.c>
则在文件“f1.c”中,可以用“f2.c”和“f3.c”的内容;在文件“f2.c”中,可以用“f3.c”的内容,不必在文件“f2.c”中再使用“#include <f3.c>”命令。
(3) 文件包含可以嵌套使用。
若在“f1.c”中只有“#include <f2.c>”命令,而“f1.c”中又要使用“f3.c”的内容,也可以让“f2.c”中出现“#include <f3.c>”命令。

