学科分类
目录
C语言

文件包含

除宏定义和条件编译之外,文件包含也是一种预处理语句,它的作用就是将一个源程序文件包含到另外一个源程序文件中。文件包含常用的格式有以下两种。

格式一:

#include <文件名>

格式二:

#include "文件名"

上述两种格式都可以实现文件包含,不同的是,格式一是标准格式,当使用这种格式时,C编译系统将在系统指定的路径下搜索尖括号(< >)中的文件;当使用格式二时,系统首先会在用户当前工作目录中搜索双引号("")中的文件,如果找不到,再按系统指定的路径进行搜索。

编写C语言程序时,一般使用第一种格式包含C语言标准库文件,使用第二种格式包含自定义的文件。

下面通过一个案例演示文件包含的用法,该案例的项目定义了两个文件:foo.h和project.c,在文件foo.h中定义了一个宏NUM,project.c文件需要引用宏NUM,则可以在project.c文件中包含文件foo.h,具体实现如例1所示。

例1 project.c

foo.h

 1  #define NUM 15

project.c

 1  #include <stdio.h>       //包含标准库文件stdio.h
 2  #include "foo.h"        //包含自定义文件foo.h
 3  int main()
 4  {
 5    int num = NUM;
 6    printf("num = %d\n", num);
 7    return 0;
 8  }

例1运行结果如图1所示。

图1 例1运行结果

在例1中,在project.c文件中,第1~2行代码包含了标准库文件stdio.h和自定义文件foo.h;第5行代码引用了foo.h中定义的宏NUM;第6行代码调用stdio.h文件中的printf()函数输出了num的值。由图1可知,程序成功获取到了foo.h中的NUM值,并将其输出到控制台。

在预处理中,project.c文件中的#include预编译指令将被包含文件的内容插入到该预编译指令的位置,代码会被替换成如下形式:

//插入stdio.h标准库文件内容
#define NUM 15     //将foo.h文件内容插入到该位置
int num = 15;     //将宏NUM替换为15
printf("num = %d\n", num);
点击此处
隐藏目录