对 C 和 C++ 程序来说,头文件里放什么,这不是一个难回答的问题。在编写小规模代码时,很少遇到这一困扰,而在编写大型项目时,对这一问题建立明确的认识却是十分必需的。
- 头文件中放什么
- 版本、版权信息
- #include 包含头文件
- 常量定义及初始化
- 全局变量声明(⚠ 是声明,不是定义。即 C 语言中的 extern)
- 数据类型定义(typedef, struct, union)
- 函数声明
- 内联函数定义(⚠ C++ 专属)
- 模版(template,C++ 专属)
- 源文件中放什么
- 版本、版权信息
- #include 包含头文件
- 全局变量定义
- 静态变量定义及初始化(static,变量只在当前文件中可用)
- 函数定义(函数体)
简单总结一下,要区分一段代码是应该放在头文件里还是源文件里,只要确定它只需要在一个文件中出现,还是需要在多个文件中出现。对于前者,放在源文件中;对于后者,放在头文件里。或者说还有一种更简单同时也更“没用”的说法:声明放在头文件中,实现放在源文件中(显然,这种说法并非绝对正确)。
[本文参考]关于头文件,源文件里应该放什么的一点小结