Linux & 标准C语言学习 <DAY14>
2024-10-21 09:26:17
一、头文件
头文件可能会被任意源文件包含,意味着头文件中的内容可能会在多个目标文件中存在,要保证合并时不要冲突
重点:头文件只编写声明语句,不能有定义语句
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:依赖的文件
编译指令
...
最新文章
- 第58讲:Scala中Abstract Types实战详解
- 黄聪:WordPress 多站点建站教程(五):获取子站点用户信息(通过输入站点ID号来获取该站点的所有用户)
- VS2015+win10+opencv3.0整个安装过程
- 利用QT开发一个记事本
- 一个基于DpperHelper的t4模板
- Dom的增删查改以及常用事件
- 【tyvj P4868】天天和不可描述
- input标签的美化
- js 原生转json 可以v8中运行
- oracle expdp自动备份脚本
- 怎么理解本征无序态的蛋白质(Intrinsically disordered proteins)
- 自己动手编译Linux内核
- Linux学习笔记:常用100条命令(一)
- Android Studio com.android.support:percent 导入错误 - 转
- P3835 【模板】可持久化平衡树
- python 库资源大全
- Java之JVM调优案例分析与实战(2) - 集群间同步导致的内存溢出
- Linux下服务器搭建
- ionicframework(一)
- 【Python之路】第二十四篇--爬虫