C/C++ 头文件规范
目录
文件命名规范
- C语言:使用
.h
扩展名
example: network_utils.h
- C++:建议使用
.hpp
扩展名(可选)
example: my_class.hpp
- 命名规则:
- 全小写字母
- 下划线分隔单词
- 反映主要内容
example: thread_pool.h
头文件保护
标准方式
#ifndef PROJECT_MODULE_FILENAME_H
#define PROJECT_MODULE_FILENAME_H
/* 内容 */
#endif // PROJECT_MODULE_FILENAME_H
包含顺序
- 关联的头文件
- 系统头文件
- 第三方库头文件
- 项目内其他头文件
#include "my_class.h"
#include <stdio.h>
#include <stdlib.h>
#include <third_party_lib.h>
#include "project/utils.h"
内容组织
建议按以下顺序组织头文件内容:
- 版权和许可信息
- 文件描述注释
- 包含保护
- 包含的其他头文件
- 前置声明
- 常量/宏定义
- 类型定义
- 函数声明
- 类定义(C++)
变量定义
避免在头文件中定义变量
内联函数
用语句代替函数调用 内联函数编程风格
- inline只适合函数体内代码简单的函数使用,不能包括复杂的控制语句。 - 如果函数体复杂,则不建议使用inline,因为编译器会根据情况选择是否内联。 - 若函数体内出现循环,则执行函数体内代码时间比函数调用的开销大,不宜使用inline.