Linux & 标准C语言学习 <DAY15>
一、头文件
头文件可能会被任意源文件包含,意味着头文件中的内容可能会在多个目标文件中存在,要保证合并时不要冲突
重点:头文件只编写声明语句,不能有定义语句
1、头文件应该写什么
a.全局变量声明
b.函数声明
c.宏常量、宏函数
d.类型重定义 //typedef
e.结构体、枚举、联合等类型设计声明
2、头文件的编写规则
1.为每个.c文件写一份.h文件,.h文件是对它对应的.c文件的说明
2.如果需要用到某个.c文件中的变量、函数、宏时,只需要把该文件的.h文件导入即可
3. .c文件也要导入自己的.h文件,目的时为了让定义与声明保持一致
头文件的相互包含:
假如a.h包含了b.h的内容,而b.h中又包含了a.h的内容,这时就会产生头文件的互相包含,无法编译通过
解决办法:把a.h中需要的b.h的内容,和b.h中需要a.h的内容提取出来,额外再写一个c.h
3、Makefile:
是由一条条编译器指令组成的可执行文件,叫做编译脚本
在终端执行 make 命令就会自动执行Makefile脚本中的编译指令,它可以根据文件的修改时间和依赖关系来判断哪些文件需要编译
需要一个名字叫做 Mikefile 的编译文件
Makefile的编译规则:
1.如果这个工程没有编译过,那么我们的所有.c文件都要编译并被链接
2.如果这个工程的某几个.c文件被修改,那么我们只编译被修改的.c文件,并链接目标程序
3.如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的.c文件,并链接目标程序
一个最简单的Makefile脚本格式:
执行文件:依赖
编译指令
被依赖的目标1:依赖的文件
编译指令
被依赖的目标2:依赖的文件
编译指令
...