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命令末尾不需要分号“;”结束。