IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 标准C语言的简单介绍8(头文件、Makefile) -> 正文阅读

[C++知识库]标准C语言的简单介绍8(头文件、Makefile)

头文件

头文件中应该写什么

?问题:头文件可能被任何的源文件包含,意味着头文件的内容会在多个目标文件中存在,合并时要保证不能冲突

?重点:头文件中只能编写声明语句,不能有定义语句

??全局变量声明 extern int num;

??函数声明

??宏常量

??宏函数

??typedef 类型重定义

??结构、联合、枚举的类型声明

头文件的编写规则

?1、为每个.c文件写一份.h文件,.h文件是对.c文件的说明

?2、如果需要使用某个.c文件中的变量、函数、宏、结构体…,只需要把该.c文件的.h文件导入即可使用

??3、.c文件也需要导入它的.h文件,目的是为了让声明与定义一致

头文件的相互包含

??假如a.h包含了b.h,b.h又包含a.h,这种情况就叫做头文件的相互包含,会导致编译错误

?当确认变量、函数名已经定义且导入,但是依然报错:未定义 xxxx,先考虑是否头文件卫士写错,在考虑是否是头文件相互包含

?解决方法:从a.h中把需要用到的b.h内容提取出来,从b.h中需要用到的b.h内容提取出来,放入新编写的c.h

Makefile

?Makefile是由一系列编译指令组成的可执行文本文件,也叫做编译脚本

??在终端执行make命令就会自动执行Makefile文件中的编译指令,它可以文件的修改时间来判断哪些文件需要编译,哪些文件不需要重新编译,根据依赖情况判断哪些文件先编译、哪些后编译,从而提高编译效率

编译规则

?1、如果这个项目没有编译过,则所有的 c 文件都要编译并被链接成可执行程序。

??2、如果某几个 .c 文件被修改,则此次只编译修改过的 .c 文件,并链接生成可执行程序。

?3、如果某个.h文件被被修改,依赖该头文件的所有.c文件全部重新编译并链接。

一个最简单的Makefile脚本

执行目标:依赖
	编译指令//前面必须有一个tab缩进
被依赖的目标1:依赖的文件
  编译指令
被依赖的目标2:依赖的文件
  编译指令
被依赖的目标3:依赖的文件
  编译指令
  ...
clean:
	rm ...
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 22:40:09  更:2021-07-30 22:40:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 18:18:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码