一、头文件
    头文件可能会被任意源文件包含,意味着头文件中的内容可能会在多个目标文件中存在,要保证合并时不要冲突
    重点:头文件只编写声明语句,不能有定义语句
   
    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:依赖的文件
            编译指令
            ...

最新文章

  1. 第58讲:Scala中Abstract Types实战详解
  2. 黄聪:WordPress 多站点建站教程(五):获取子站点用户信息(通过输入站点ID号来获取该站点的所有用户)
  3. VS2015+win10+opencv3.0整个安装过程
  4. 利用QT开发一个记事本
  5. 一个基于DpperHelper的t4模板
  6. Dom的增删查改以及常用事件
  7. 【tyvj P4868】天天和不可描述
  8. input标签的美化
  9. js 原生转json 可以v8中运行
  10. oracle expdp自动备份脚本
  11. 怎么理解本征无序态的蛋白质(Intrinsically disordered proteins)
  12. 自己动手编译Linux内核
  13. Linux学习笔记:常用100条命令(一)
  14. Android Studio com.android.support:percent 导入错误 - 转
  15. P3835 【模板】可持久化平衡树
  16. python 库资源大全
  17. Java之JVM调优案例分析与实战(2) - 集群间同步导致的内存溢出
  18. Linux下服务器搭建
  19. ionicframework(一)
  20. 【Python之路】第二十四篇--爬虫

热门文章

  1. 学习lua-01,遍历集合,多入参循环处理,类型判断,数字运算
  2. SQL server 清空数据库所有表
  3. vue的易错点合集
  4. java 项目中Error linstenerStart 报错解决方法
  5. Mysql-------查询各科成绩前三名的记录
  6. JDBC概念和基本用法
  7. 基础vue的一些知识补充
  8. P4921 [MtOI2018]情侣?给我烧了!
  9. Java 中的内存分配
  10. 2022 ICPC沈阳合肥游记