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:依赖的文件
编译指令
...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」