在C语言中文件包含是指一个源文件可以将另一个源文件的全部内容包含进来。该命令的作用是在预编译时,将指定源文件的内容复制到当前文件中。文件包含是C语言预处理命令三个内容之一。
中文名
文件包含
外文名
include类 别
C语言编程
类 型
预处理命令
文件包含含义
编辑
右图很好的表达了"文件包含"的含义,a图为文件f1.c,它有一个#include “f2.c”命令,后面跟着文件内容,记
为程序1.图b为另一个文件f2.c,文件内容以程序2表示。在预编译时,对要#include命令进行"文件包含"处理,将f2.c的全部内容复制插入到#include “f2.c” 命令处,即f2.c被包含到f1.c中,得到如图c所示的结果。在编译时,将"包含"以后的f1.c(如图c)作为一个源文件进行编译处理。
文件包含两种格式区别
编辑
文件包含有两种格式,分别是:#include "file" 和 #include
这两格式的区别在于:
1.使用双引号,系统首先到当前目录下查找被包含的文件,如果没找到,再到系统指定的"包含文件目录"(由用户在配置环境时设置)去找。
2.使用尖括号:直接到系统指定的"包含文件目录"去查找。
通常使用双引号比较保险
文件包含文件包含优点
编辑
一个大程序,通常分为多个模块,并由多个程序员分别编程。有了文件包含处理功能,就可以将多个模块共用的数据(如符号常量和数据结构)或函数,集中到一个单独的文件中。这样,凡是要使用其中数据或调用其中函数的程序员,只要使用文件包含处理功能,将所需文件包含进来即可,不必再重复定义它们,从而减少重复劳动和定义不一致造成的错误。
文件包含例子
编辑
文件F1.c
#define PI 3.1415926
#define R 3
#define S PI*R*R
文件F2.c
#include "F1.c"
#include "stdio.h"
main()
{
float area=0;
printf("area=%f\n",S);
}
在VC++6.0的运行结果为:
area=28.274333
文件包含文件包含特点
编辑
文件包含的特点:
① 编译预处理时,预处理程序将查找指定的被包含文件,并将其复制插入到#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"命令,即定义如下:
文件f1.h:
{
… …
}
文件f2.h:
#include "f1.h"
int max()
{
… …
}
文件f3.h:
#include "f2.h"
main
{
… …
}
#include命令一般用来把C语言提供的标准库头文件(如stdio.h、math.h)包含到程序中。程序员也可以自己定义一个头文件,写入一些常用的函数原型、宏定义、结构和联合类型定义等,然后将它包含到程序中。例如:#include "stdio.h" (标准输入/输出函数库)
#include "math.h" (数学函数库)
#include "stdlib.h" (常用函数库)
#include "string.h" (字符串处理函数库)