8.2 文件包含指令

文件包含指令,即#include命令,通常位于C51源程序的开头,利用#include命令可以将其他的文件引入当前的C51源文件。其中被包含的文件通常是头文件、宏定义等。使用文件包含指令,有利于更好地调试C51源文件。当需要调试修改文件时,只要修改某一包含文件即可,无须对所有文件进行修改。

8.2.1 #include命令

在C51语言中,文件包含指令的一般形式如下。


include“头文件.h”

include<头文件.h>

include宏定义标识符


其中,“#include”表示文件包含指令、双引号或尖括号括起来的文件名是要引入的源文件。典型的文件包含指令示例如下。


include“myfile.h”//引用自定义文件myfile

include<studio.h>//引用库函数文件studio

include<reg51.h>//引用寄存器文件

define MATH_FILE“C\keil\inc\math1.h”//宏定义自定义文件MATH_FILE

include MATH_FILE//引用自定义文件MATH_FILE


通常被包含文件不带路径,若包含文件为C51的库函数文件,则编译器会按环境变量设置的目录去搜索;若包含文件为用户自定义的文件,则编译器会首先搜索当前目录,其次再按#include命令指定的路径去搜索。使用文件包含指令的程序示例如下。


include<stdio.h>//头文件

include“myfile1.h”//包含自定义文件

void main()//主函数

{

int i,sum=0;

for(i=0;i<=20;i++)//主循环

{

sum=sum+fun(i);

}

printf(“sum=%d\n”,sum);//打印输出结果

}


其中myfile1.h文件的内容如下。


int fun(int i)//自定义函数

{

int mul;

mul=i*i;//乘积运算

return mul;//返回结果

}


该程序可以在KeilµVision3集成开发环境中运行,其结果如下。


sum=2870


本例中,文件myfile1.h中定义了函数fun,用于计算平方。在main主函数所在的文件中,通过文件包含指令将引入该文件。这样就可以在源程序中调用fun函数来进行平方计算。使用文件包含指令#include,有利于程序的模块化设计。将常用的函数做成文件,在编写其他程序时,如果要用到这些函数,只需将其包含进来即可。在使用#include命令时,应注意以下几点。

❑#include命令出现在程序中的位置,决定了被包含的文件就从此处引入源文件。一般来说,被包含的文件要放在包含文件的前面。否则会出现使用内容尚未定义的错误。

❑C51源程序中规定一个#include命令只能包含一个被包含文件。若要包含多个文件,就要使用多个#include命令。

❑当被包含文件用双引号引起来时,表示先从源文件所在目录搜索,如果未发现该文件,再到系统指定的目录搜索,这种方式一般用于被包含文件为自定义文件的情况。

❑当被包含文件用尖括号括起来时,表示直接到系统指定的目录搜索,这种方式一般用于包含文件为库函数文件的情况。

❑当被包含文件为自定义文件时,编译器通常先搜索当前目录,其次再按#include指定的目录路径去搜索。

❑若被包含文件显示路径名,即路径名为文件标识符的一部分,则仅在显示路径名的那些子目录中搜索被包含文件。

❑#include命令末尾不需要分号“;”结束。