一 概述
二 类型
三 语句
四 函数
五 数据
六 内存
七 代码
附录
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2. 头文件
头文件用于保存共用信息,可被其他源文件导入。比如常量定义,类型和函数声明。源文件和所引入的所有头文件构成一个完整翻译单元,编译器以此为单位进行分析。
用头文件替代前置声明(forward declaration)。自包含(#include)它所需的其他头文件,可作为第一个头文件被引入。
非头文件的前置声明隐藏了依赖关系。如头文件变动,会无法提示。前置声明还可多次声明,后续对声明的更改可能导致错误。
#include <system.h>
: 包含标准库和系统库头文件。#include "project.h"
: 包含项目头文件。
引入
可使用 -I
编译参数向路径列表添加头文件搜索路径,新增路径会优先搜索。如果是系统路径,或不存在路径,会被忽略。
使用
-iquote
添加专用于#include "..."
搜索列表。
$ echo | gcc -E -Wp,-v -I./inc -I./sub - # 查看路径列表。 $ echo | gcc -E -Wp,-v -iquote./inc -I./sub -
查找顺序:
#include <...>
: 从系统目录开始找。#include "..."
: 从当前目录开始找。
包含顺序:
- 需要优先的头文件。
- 标准库。
- 扩展库。
- 当前项目。
保护
保护头文件,避免多次包含后重复展开。
使用路径名称(
__<PROJECT>_<PATH>_<FILE>_H__
)可避免重名,确保唯一性。
#ifndef __PROJECT_PATH_FILE_H__ #define __PROJECT_PATH_FILE_H__ #endif // __PROJECT_PATH_FILE_H__
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论