头文件(header files)
一、定义
C++/C程序的头文件以.h
为后缀。使用时需要在.cpp
文件中意#include<fileName.h>
的方式引入。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
二、头文件中常包含的内容
- 函数原型
- 使用
#define
或const
定义的符号常量 - 结构声明:将结构声明放在头文件中是可以的,因为它们不创建变量,而只是在源代码文件中声明结构变量时,告诉编译器如何创建该结构变量。
- 类声明
- 内联函数(inline)
总结一下就是:函符结类联
三、作用
- 加强类型检查,提高类型安全性。
- 减少公用代码的重复书写,提高编程效率。
- 提供保密和代码重用的手段。
四、引申
- 在项目中,我们可以定义一些特殊的头文件,相应的如:
1. 资源头文件 resource.h
2. 全局变量头文件 global.h
3. Qt 中的信号与槽头文件 sig.h
4. 宏定义的头文件 customDefine.h
包括我们在VS工程中最常使用的头文件 #include<stdaf.h>
标准头文件
- 另外就知道头文件查询的顺序和方式
1. 搜索当前目录
2. 搜索 -l 指定的目录
3. gcc的环境变量 `C_INCLUDE_PATH`、`CPLUS_INLCUDE_PATH`、`OBJC_INCLUDE_PATH`
4. 内定目录 /usr/include,/usr/local/include
5. gcc的一系列自带目录,如:
CPLUS_INCLUDE_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include
五、DEMO:
一个基于Qt的全局配置文件的头文件内容展示:
#ifndef GLOBAL_H
#define GLOBAL_H
#pragma once
// 库文件
#include <QWidget>
// 自定义文件
#include "http.h"
#endif // GLOBAL_H
// 宏定义
#define FILE_PATH_APITOKEN ":/Config/API.ini"
#define FILE_PATH_COLOR ":/Config/color.ini"
#define FILE_PATH_FONT ":/Config/font.ini"
#define FILE_PATH_CONFIG ":/Config/config.txt"
// 一些宏定义工具
#define ARRAYSIZE(x) ((x)/(x[0]))
#define OBJECTNAME(x) (QString(#X))
// 枚举
enum SHOWSOUCETYPE {
LOCAL = 1,
YIYAN,
POETRY
};
enum FONTTYPE {
HYShangWeiShouShuW = 0,
SimSun,
SimHei,
Microsoft_YaHei,
Microsoft_JhengHei,
NSimSun,
PMingLiU,
MingLiU,
DFKai_SB,
FangSong,
KaiTi
};
// 全局类接口
class Global{
private:
Global();
public:
static QString GetFont();
static QString GetColor();
private:
QSettings m_SetIng;
};
// 通用函数接口
int getRandomNum(int n);
int changeFontSize(int size);