任务描述
文件包含是C 预处理程序的另一个重要功能。在程序设计中,文件包含是很有用的。一个大的程序可以分为多个模块,由多个程序员分别编程。有些公用的符号常量或宏定义等可单独组成一个文件,在其他文件的开头用包含命令包含该文件即可使用。这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错。
知识学习
(1)文件包含
“文件包含”用于一个源程序文件包含另外一个源程序文件的全部内容。提供的文件包含预处理命令的一般形式:
上述两种方式的区别是:第一种形式的文件名用尖括弧括起来,系统将到包含C语言库函数的头文件所在的目录中寻找文件;第二种形式的文件名用双引号括起来,系统先在当前目录下寻找,若找不到,再到操作系统的path 命令设置的自动搜索路径中查找,最后才到C语言库函数的头文件所在的目录中查找。所以为了节省查找时间,包含C语言的头文件时选择第一种形式(C语言库函数的头文件),其他情况选择第二种形式(自己创建的头文件)。
处理过程:预编译时,用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译。
对文件包含命令使用时要注意:
①一个include 命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。
②文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。
(2)文件包含实例操作
例6.4 读取用户输入的数字,并显示其平方。
头文件a.h 的内容如下:
图6.4 例6.4 程序运行结果
程序说明:
本例中把求平方函数放到自己创建的“a.h”头文件中,在源文件“a.c”中需要使用该函数功能,就把该函数功能所在的头文件“a.h”包含在源文件“a.c”中,这样源文件就可以使用头文件“a.h”中的相应函数功能。
任务总结(www.xing528.com)
在C语言中,文件包含是指一个源文件可以将另一个源文件的全部内容包含进来。该命令的作用是在预编译时,将指定源文件的内容复制到当前文件中。文件包含是C语言预处理命令3 个内容之一。
文件包含的优点:
一个大程序,通常分为多个模块,并由多个程序员分别编程。有了文件包含处理功能,就可以将多个模块共用的数据(如符号常量和数据结构)或函数集中到一个单独的文件中。凡是要使用其中数据或调用其中函数的程序员,只要使用文件包含处理功能,将所需文件包含进来即可,不必再重复定义它们,从而减少重复劳动和定义不一致造成的错误。
文件包含的特点:
①编译预处理时,预处理程序将查找指定的被包含文件,并将其复制插入到#include 命令出现的位置上。
②常用在文件头部的被包含文件,称为“标题文件”或“头部文件”,常以“h”(head)作为后缀,简称头文件。在头文件中,除可包含宏定义外,还可包含外部变量定义、结构类型定义等。
③一条包含命令,只能指定一个被包含文件。如果要包含多个文件,则要用多条包含命令。例如,文件f1.h 中要使用到文件f2.h 和文件f3.h 的内容,则可在文件f1.h 中用两个文件包含命令分别包含文件f2.h 和文件f3.h,即在文件f1.h 中定义:
#include "f2.h"
#include "f3.h"
在使用多个#include 命令时,顺序是一个值得注意的问题。在上例中,如果文件f1.h 包含文件f2.h,而文件2 要用到文件f3.h,则在f1.h 中#include 定义的顺序应该是:
#include "f3.h"
#include "f2.h"
这样文件f1.c 和文件f2.h 都可以使用文件f3.h 的内容。
④文件包含可以嵌套,即被包含文件中又包含另一个文件。例如,文件f2.h 中要使用到文件f1.h 的内容,文件f3.h 要使用到文件f2.h 的内容,则可在文件f2.h 中用#include "f1.h"命令,在文件f3.h 中用#include "f2.h"命令,即定义如下:
#include 命令一般用来把C语言提供的标准库头文件(如stdio.h、math.h)包含到程序中。程序员也可以自己定义一个头文件,写入一些常用的函数原型、宏定义、结构和联合类型定义等,然后将它包含到程序中。例如:#include "stdio.h" (标准输入/输出函数库)。
#include "math.h"(数学函数库)
#include "stdlib.h"(常用函数库)
#include "string.h"(字符串处理函数库)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。