_not_在代码项目中使用多个文件有什么好处吗? (C ++)

时间:2013-03-22 22:12:52

标签: c++ code-organization

What are the advantages of using more then 1 code file for a project? (C++)相反,我想知道不使用多个代码文件(例如C ++)项目是否具有(技术或其他)优势?

在几个文件中分裂只是一个人类的东西?在可视性/优化方面,机器一次性处理所有这些不是更好吗?

5 个答案:

答案 0 :(得分:5)

将所有内容放在一个文件中会破坏文件级静态和匿名命名空间的目的(并避免使用extern声明)。

虽然对编译器没有多大好处。对于像优化这样的事情,他们只需要实现需要全局查看链接器的部分(并且大多数当前链接器包括这样的优化/代码生成功能)。

它会(或至少可以)减少完整重建的总时间。使用单独的源文件,您将结束为包含它的每个源文件重新编译每个标头。只有一个源文件,你只需要编译一次(但是预编译的头文件可以并且通常会将其减少到可能很少重要的程度,至少如果你使用它们的话)。

从实际的角度来看,它通常会严重影响构建时间。大多数人都非常努力地隔离事物,因此程序的一个部分的更改只需要重新编译一小部分程序。对于任何不仅仅是一个真正微不足道的程序,每次进行任何更改时都必须重新编译所有内容将是完全无法管理的 - 对于一个体面的大小程序,您的构建时间会从几秒钟变为几分钟。

答案 1 :(得分:4)

这实际上是一个微妙破碎的问题。当文件满足另一个问题中回答的标准之一时,即当文件或项目“足够大”以使其更易于分割时,分割文件是有利的。如果不符合这些标准,则没有优势。因此,这个问题的答案是“如果分割文件的原因都不适用,请不要拆分。”它们通常用于中型项目。为了给出一个具体的例子,通常应将“Hello World”保存到一个文件中。

答案 2 :(得分:3)

如果您想将该程序作为电子邮件附件发送,则只需附加一个文件。

答案 3 :(得分:2)

如果所有内容都在一个编译单元中,编译器可能会进行更多优化,这就是sqlite3以这种方式分发的原因。

答案 4 :(得分:1)

好吧,如果你看一下What are the advantages of using more then 1 code file for a project? (C++),你会发现拆分代码有很多好处。否则所有这些都会丢失。

拆分代码的唯一好处是,如果您正在处理一个非常小的项目。然后将所有内容保存在一个文件中会更方便。

大多数项目足够大,有多个文件。在开发过程中,你只是感觉到它们不可抗拒(迫切)的需要。谁真的喜欢向后滚动1000多行来进行编辑?

是的,这是一个人道的事情。我们必须拆分东西以便能够理解它们。我们需要处理较小的代码片段。