首页 理论教育 理解C语言文件包含处理

理解C语言文件包含处理

时间:2023-10-27 理论教育 版权反馈
【摘要】:任务描述文件包含是C 预处理程序的另一个重要功能。文件包含实例操作例6.4读取用户输入的数字,并显示其平方。文件包含是C语言预处理命令3 个内容之一。凡是要使用其中数据或调用其中函数的程序员,只要使用文件包含处理功能,将所需文件包含进来即可,不必再重复定义它们,从而减少重复劳动和定义不一致造成的错误。文件包含的特点:①编译预处理时,预处理程序将查找指定的被包含文件,并将其复制插入到#include 命令出现的位置上。

理解C语言文件包含处理

任务描述

文件包含是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"(字符串处理函数库)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈