我是C ++的新手,目前正在阅读一些具有多个头文件格式的代码:
#include <some standard library>
#include <some standard library>
...
#include <some third party library header>
#include <some third party library header>
...
#include <some internal header files>
#include <some internal header files>
...
,没有其他。我真的不理解这些文件的用法,也不了解为什么要这样构造它们,因为我认为头文件带有类声明,这些类声明基本上由其他代码用来访问目标文件的接口组成。我认为程序员可能想将所有标头“打包”在一个大标头中,然后将其包含在内。这是个好主意还是最好避免使用这些“仅包含”标头?
答案 0 :(得分:1)
这个想法是precompiled headers。 而不是将所有标头包含在所有编译单元中,而是仅包含一个文件,该文件在第一次解析后将被缓存。这样,为当前版本或下一个版本编译其余单元的速度就会更快。
因此,例如,您可以在Visual Studio中看到较大的PCH文件。典型的安装程序是stdafx.h,它包含在所有编译单元中,其中第一个生成预编译的标头,其他的则重用它。