头文件中应该写什么
问题:头文件可能被任何的源文件包含,意味着头文件的内容会在多个目标文件中存在,合并时要保证不能冲突
重点:头文件中只能编写声明语句,不能定义语句
比如:全局变量的声明 extern int num;
函数声明
宏常量
宏函数
typedef 类型重定义
结构、联合、枚举的类型说明
头文件的编写规则
1、为每个.c文件写一份.h文件,.h文件是对.c文件的说明
2、如果需要使用某个.c文件中的变量、函数、宏、结构体...,只需要把该.c文件的.h文件导入即可使用
3、.c文件也需要导入它的.h文件,目的是为了让声明与定义一致
头文件的相互包含:(死锁)
假如a.h包含了b.h,b.h又包含a.h,这种情况就叫做头文件的相互包含,会导致编译错误
当确认变量、函数名已经定义且导入,但是依然报错:未定义 xxx,先考虑是否头文件卫士写错,再考虑是否头文件相互包含
解决方法:从a.h中把需要用到的b.h的内容提取出来,从b.h中把需要用到的a.h的内容提取出来,