目录
内容提要
介绍头文件产生的原因,作用以及编辑方法
关键词
头文件,C语言,Linux,vim
正文
引言
为什么会有头文件?头文件有什么用?怎么编辑和使用头文件?
正文
头文件起源
简单的说头文件的产生就是为了偷懒,代码刚开始产生的时候长度不长,也不需要头文件,然而随着计算机的发展,代码越来越长,就产生了很多重复的片段,大家都觉得敲代码太累了,就想出一个办法,把那些常用的函数放到一个文件里面,要用时直接从里面调用就行,不需要重新敲代码,这样就省了很多功夫,这个汇集了常用函数的文件就是头文件。后来常用函数越来越多,头文件越来越大,大伙儿又不乐意了,毕竟写一个不到1kb的小程序,还要加载一个几十上百M的头文件,感觉太臃肿了,而且仔细一想,我就写一个简单程序,也用不着数学相关的函数,和图像处理的函数呀,于是又分类,分成<math.h>,<stdio.h>,<stdilb.h>。。。。。。等等等,大家要用的话只需要加载自己需要的头文件就好了。
头文件作用
1,定义函数,通过头文件直接调用,减少敲代码的辛苦。
2,定义全局静态变量,可以通过修改头文件里面的静态变量,直接修改所有调用的静态变量。
编辑和使用头文件
步骤1,编写一个头文件,名字就叫liaoya.h好啦,里面的内容是:
#ifndef _LIAOYA_H_//如果没有liaoya.h就创建liaoya.h
#define _LIAOYA_H_
#endif
步骤2,在里面添加函数,方便以后调用,为了简单起见,我们添加一个hello的函数,添加后的代码如下:
#ifndef _LIAOYA_H_//如果没有liaoya.h就创建liaoya.h
#define _LIAOYA_H_
void hello (void);//告诉计算机存在一个名字叫hello的函数
void hello (void)//函数的具体内容
{
printf("hello world!\n");
}
#endif
步骤3,引用头文件里面的函数,放在这里具体就是应用liaoya.h里面的hello函数,现在我们创建一个.c文件,额,名字叫test.c吧,然后在里面引用头文件,具体代码如下:
#include<stdio.h>
#include"liaoya.h"//注意要使用“”而不是<>,具体可以看后文解释
int main(void)
{
hello();//引用hello函数
return 0;
}
到这里就结束了,编译运行啥的和头文件无关就不在这里详述了。
个人总结
1,上文为什么在使用liaoya.h这个头文件时,使用”liaoya.h”,而不是 <liaoya.h>?这两种写法有什么区别吗?;
区别就在于当你使用”liaoya.h”时,计算机会搜索你编辑的.c文件所在的文件夹里面是否有一个liaoya.h的文件。而当你使用<liaoya.h>时,计算机会去搜索头文件库里面有没有一个liaoya.h的文件。如果你把liaoya.h放到头文件库里面去,你也可以使用<liaoya.h>进行引用。
2,为什么在创建头文件时文件名要大写?而且要把.写成?文件名的前后加两个又是什么意思?
#ifndef _LIAOYA_H_
原因在于#ifndef一般用于宏定义相关,而LIAOYA_H也是宏,不是头文件名,只不过习惯上把宏定义成与头文件名相同。.换成_是为了避免与程序里面的.混淆。
为什么要在文件名加_,《C程序设计语言(第二版)》第2章 2.1变量名该节讲到
……名字是由字母和数字组成的序列,但其第一个字符必须是字母。下划线被看做是字母……由于库例程的名字通常以下划线开头,因此变量名不要以下划线开头……