C++中的头文件如何允许更快的编译

How do header files in C++ allow for faster compilation?

本文关键字:何允许 编译 文件 C++      更新时间:2023-10-16

我知道在C++中拥有头文件的目的是将接口与实现分离。换句话说,我们在实现文件和头文件之间指定了一个约定,即它必须写入头文件中函数签名的规范,如果不这样做,就会引发编译器错误。

然而,我不明白这是使编译更快还是只是减少了开发时间?对我们的函数进行前向声明并让编译器捕捉我们在定义中犯下的任何错误是有意义的(例如,我们在实现文件的函数中的参数数量与头中指定的参数数量不同(。因此,在编译时而不是运行时发现这些错误肯定有助于开发时间。

在较低的级别上,通过包含我们自己的头文件,在编译时有什么优势吗?

编辑:好吧,如果编译时间没有优势,为什么除了接口和实现的分离之外,我们还有头文件?

考虑我们只有实现文件而没有头文件。然后,当我们必须使用特定的类/函数时,我们必须将完整的实现包含到该文件中,这最终会多次编译完整的实现,从而最终增加编译时间。

但是,当我们只包含声明时,我们只需要多次编译声明,这样成本更低。

此外,必须记住,我们甚至应该只在实际需要的地方包含头文件。永远不会在哪里。

拥有头文件的其他优点:在dlls/libs的情况下,我们已经编译了实现,头文件是了解库中可用类/函数详细信息的良好来源。