头文件应该写什么:gcc -c a.c -> a.o
问题:头文件可能被任何文件包含,意味着头文件的内容会在多个目标文件(.o)存在,合并时不能冲突。
重点:头文件中只编写声明语句,不能有定义语句
全局变量的声明
函数声明
宏常量
宏函数
typedef 类型重定义
结构、联合、枚举的类型声明
头文件的编写原则:
1、为每个.c文件写一份.h文件,.h文件是对.c的文件的说明
2、如果需要用到某个.c文件中的变量、函数、宏、结构…时,只需要把它的头文件导入即可。
3、c文件也要导入自己的.h文件,目的是让声明与定义一致
头文件的互相包含:
假如a.h中包含b.h,b.h又需要a.c,这种情况在编译时就会出错
解决方法:就是把a.h中需要的内容和b.h中需要的内容提取出来,另外在编写一个c.h
未知的类型名“XXXX”,一般都是因为头文件相互包含导致的。