32 头文件
1,头文件是扩展名为 . h 的文件,包含了C函数声明和宏定义,被多个源文件中引用共享,有两种类型的头文件:程序员编写的头文件和C标准库中自带的头文件
2,在程序中要使用头文件,需要使用C预处理指令 #include 来引用它
3,#include 叫做文件包含命令,用来引入对应的头文件(.h 文件),#include 也是C语言预处理命令的一种,#include 的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从而把头文件和当前源文件链接成一个源文件,这与复制粘贴的效果相同。
4,建议把所有的常量,宏,系统全局变量,和函数原型写在头文件中,在需要的时候随时引用这些头文件
5,工作原理图
6,在 test.c中定义一个sum()函数,将sum 声明到 文件 test.h 中,当其他文件如hello.c文件需要使用到 test.h 声明的函数时,可以 #include 该头文件,就可以使用了。
test.c
test.h
hello.c
1 #include<stdio.h> 2 #include"test.h" 3 void main() { 4 int res=sum(1, 2); 5 printf("res=%d", res); 6 }
打印结果:
res=3
7,①引用头文件相当于复制头文件的内容
②源文件的名字可以不和头文件一样,但是为了好管理,一般头文件和源文件名字一样。
③C语言中 include<> 和 include " " 的区别
include<>:引用的是编译器的类库路径里面的头文件,用于引用系统头文件
include " " :引用的是程序目录的相对路径中的头文件,如果在程序目录中没有找到引用的头文件则到编译器的类库路径的目录下找该头文件,用于引用用户头文件。
所以:引用系统头文件,两种形式都可以,include <> 效率高
引用 用户头文件,只能使用 include " "
④一个 #include 命令只能包含一个头文件,多个头文件需要多个 #include 命令
⑤同一个头文件如果被多次引用,多次引用的效果和一次引入的效果相同,英文头文件在代码层面有防止重复引入的机制。
⑥在一个被包含的头文件(如test.c)中又可以包含另一个文件的头文件
⑦不管是标准头文件还是自定义头文件,都只能包含变量和函数的声明,不能包含定义,否则在多次引入时会引起重复定义错误。