将文件拆分为.cpp和.h会减少编译时间吗?

时间:2013-11-05 15:28:03

标签: c++ compiler-construction

我有一个很大的.cpp文件,在一个文件中定义并声明了几个类。我想为每个班级准备一个.h文件,但我不确定这些优势。

将您的文件拆分为纯偏好吗?这会增加编译时间和/或一般可读性吗?我的编译器给了我一个所有类声明的列表,我可以通过一次单击轻松访问,因此如果编译器需要更多时间将所有这些文件放在一起,我宁愿将它保存在一个块中。

编辑:我要求分成.cpp和.h而不是多个cpp,因为这个问题已经被驳回,已经有了答案。

2 个答案:

答案 0 :(得分:2)

拥有多个文件不会直接减少时间,但是由于编译可以以差异方式执行,其中只有更改的代码才会在链接之前重新编译为目标文件,这意味着如果您在自己的.cpp中拥有每组类,并且.h文件可以节省大量时间。它还有一些必然结果,如:

  • 调试更直接:您有一个较小的文件可以找到并纠正任何错误和错误。
  • 代码将更清晰,更易于维护
  • 如果使用makefile,您可以选择性地编译文件以节省时间
  • 更容易重用代码:您可以将代码的任何给定部分转移到新项目而不继承您不需要/不需要的所有部分
  • 更容易单独记录每个班级
  • 更容易控制修订/更适合源代码管理
  • 更轻松,更有效地部署代码更新,而不是发送一个包含20个类的全新大型文件,您只需发送已更改的类。

这绝不是一个详尽的清单,只是一个简短的介绍,并且几乎可以有多少反对它的论据,但总的来说,优点胜过我的利弊。

答案 1 :(得分:0)

拥有许多.h文件的优点还在于,从其他一些翻译单元中,您可能只需要包含一些接口,而不是所有接口(如果您只有一个头文件,则必须执行此操作)

相反,您可能希望在每个相同的头文件中保留任何可能的“帮助器”类,该类与标头专用的特定类一起使用。