一个C语言程序由若干源程序文件组成,而一个源文件还可以将另一个源文件的全部内容包含进来,即将指定的源文件包含在当前文件中。
例如:下有两个源文件file1.c和file2.c
file1.c
int max(int x, int y)
{
int z;
if(x>y) z=x;
else z=y;
return z;
}
file2.c
#include<stdio.h>
#include "file1.c"
void main()
{
int a,b,c;
printf("Input a,b:");
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("c=%d\n",c);
}
源文件file2.c中#include "file1.c"是一条文件包含命令,其作用是用文件file1.c的全部内容代替该命令行。
在一般情况下当需要将另一个文件的内容包含到当前文件中时,在文件的开始使用文件包含命令即可。文件包含命令的一般形式为:
#include <文件名>
//或
#include "文件名"
它的作用是用指定文件的全部内容代替文本文件中的这一行。其中,文件名指定的文件是由C语句和编译预处理命令组成的文本文件。
说明:
1.使用文件名用尖括号<>括住时,预处理程序仅在系统指定的磁盘和路径下搜索包含文件。若在系统指定的磁盘和路径下搜索不到被包含文件,将给出文件不能打开的错误信息。使用文件名用双引号""引起来时,则首先在当前目录中搜索要包含的文件,若找不到再在系统指定的路径下搜索。
如果是在同一个路径下可直接使用上述格式,不在同一目录文件下应当指明文件路径,一般自己编写的文件应用推荐使用后一种(用双引号引起来的)格式去引用。
例如:
#include "文件路径/文件名"
2.C编译系统提供了大量后缀为.h的文件,通常保存在编译系统文件所在目录的下级目录(如:…\include)中。这些文件的内容包括常量定义、带参数宏的定义、库函数的函数原型及系统中固定使用的结构体或共用体的类型定义等。这些文件的内容一般要求放在源程序的开头,所以把它们称为“头文件”。编写程序时,若需要这些文件中的常量定义、函数声明、类型定义等内容。就用包含命令将其包含进来,避免重复编写。
3.用户常用的一些符号常量和带参数的宏可单独存放在一个文件中。
例如:
file0.h
#include PI 3.14159
#include G 9.18
#include E 2.71828
#include MAX(a, b) a>b?a:b
把这些宏定义命令存放在一个文件中,需要这些常量时,就将这个文件包含到写的源程序中。
4.一个包含命令只能包含一个文件,要包含多个文件时,需使用多个包含命令。
5.被包含文件的内容必须是C语言程序。
6.有多个文件组成的C语言程序可以使用文件包含命令合并成一个较大的文件后,再进行编译运行。
例如:
file.c:
#include "file1.c"
#include "file2.c"
#include "file3.c"
文件file.c是由文件file1.c、file2.c、file3.c合并而成的文件。