头文件中的源代码

Source code in header files

本文关键字:源代码 文件      更新时间:2023-10-16

如果我在头文件中包含源代码(如定义函数,类等)是不好的吗?我读到过不建议这样做,但也完全可以这样做……有正确答案吗?

未标记为inline的函数不能进入头文件,因为如果它们在程序中被包含两次,链接器会给您一个错误。请注意,类中的方法被视为内联的。

只要你只使用模板和内联代码,你就可以把你的代码放在头文件中。但是,对于包含它的每个源文件,它都会编译一次,从而减慢构建速度。你可以用预编译的头文件来解决这个问题,那么唯一真正的缺点就是缺乏良好的"部分"构建,但构建总体上表现不错。

所以它真的归结为只是编译时间,我认为预编译头可以抵消大部分的负面影响。但是很多时候我还是更喜欢合适的源文件

将常见的非内联函数编码在公共标头中的一种情况是用于多处理(而不是多线程)应用程序。每个进程的代码都有一个源文件,其中包含带有这些通用函数的通用头文件。