通常我们写C程序时,都会直接使用这样的语句“#include
头文件几个好处:
1,头文件可以定义所用的函数列表,方便查阅你可以调用的函数;
2,头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序
就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。
3,头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个.c文件里定义的,
才知道。
4,他并不是C自带的,可以不用。
5,调用了头文件,就等于赋予了调用某些函数的权限,如果你要算一个数的N次方,就要调用Pow()函数,而这个函数是定义在math.c里面的,要用这个函数,就必需调用math.h这个头文件。
写头文件的大致格式:
头文件中函数或者变量名的命名和命名变量一致。(一般用下划线和大写字母,系统定义的变量一般都是下划线开头,用来区分)
-
#ifndef __ABC_H__
-
#define __ABC_H__
-
//以上是为了防止头文件被多次包含,可以省略,最好有,名字任意,保证唯一即可
-
-
//以下是宏定义,可有可无
-
#define MAX 100
-
#define MIN 0
-
-
//以下是结构声明,可有可无
-
typedef
struct{
-
int a;
-
}ABC;
-
//以下是函数声明,可有可无
-
void abcfun(int a,int b);
-
...
-
-
#endif
可以看出在头文件中,我们可以定义函数、变量、宏定义等等。
例如自己定义一个两个数比较大小的函数,直接使用该函数:
定义头文件COM.h
-
#ifndef COMPARE
-
#define COMPARE(a,b) (((a) > (b)) ? (a) : (b))
-
#endif
添加头文件“COM.h”,并使用自己定义的COMPARE函数比较大小
-
#include
-
#include "COM.h"
-
int main()
-
{
-
int a=
10, b=
100,c;
-
c = COMPARE(a, b);
-
printf(
"%d\n", c);
-
return
0;
-
}
当程序中有多个.h头文件时,我们也可以将.h头文件放到自己定义的头文件中,这样一个.h头文件就可以包含所有你需要用的.h头文件
例如把#include
-
#ifndef COMPARE
-
#define COMPARE(a,b) (((a) > (b)) ? (a) : (b))
-
#endif
-
#include
这样在.c文件中就可以不用#include
语言中 include <> 与include "" 的区别?
#include < > 引用的是编译器的类库路径里面的头文件。
#include " " 引用的是你程序目录的相对路径中的头文件,如果在程序目录没有找到引用的头文件则到编译器的类库路径的目录下找该头文件。