【C/C++】头文件

202 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

@[toc]

头文件(header files)

一、定义

C++/C程序的头文件以.h为后缀。使用时需要在.cpp文件中意#include<fileName.h>的方式引入。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。

二、头文件中常包含的内容

  1. 函数原型
  2. 使用#defineconst定义的符号常量
  3. 结构声明:将结构声明放在头文件中是可以的,因为它们不创建变量,而只是在源代码文件中声明结构变量时,告诉编译器如何创建该结构变量。
  4. 类声明
  5. 内联函数(inline)

总结一下就是:函符结类联

三、作用

  1. 加强类型检查,提高类型安全性。
  2. 减少公用代码的重复书写,提高编程效率。
  3. 提供保密和代码重用的手段。

四、引申

  1. 在项目中,我们可以定义一些特殊的头文件,相应的如:
    1. 资源头文件 resource.h
    2. 全局变量头文件 global.h
    3. Qt 中的信号与槽头文件 sig.h
    4. 宏定义的头文件 customDefine.h

包括我们在VS工程中最常使用的头文件 #include<stdaf.h> 标准头文件

  1. 另外就知道头文件查询的顺序和方式
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);