3

为项目使用超过 1 个代码文件相比有什么优势?(C++)我想知道不使用多个代码文件是否有(技术或其他)优势,例如 C++ 项目?

拆分成几个文件只是人为的事情吗?就可见性/优化而言,机器一次处理所有这些不是更好吗?

4

5 回答 5

5

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

不过,它对编译器并没有多大好处。对于优化之类的事情,他们只是实现了链接器中需要全局可见性的部分(并且大多数当前的链接器都包括这种优化/代码生成功能)。

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

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

于 2013-03-22T22:21:35.037 回答
4

这实际上是一个微妙的问题。只有当文件满足另一个问题中回答的标准之一时,拆分文件才有利,即当文件或项目“足够大”以使其更易于拆分时。如果不满足这些标准,就没有优势。所以这个问题的答案是“如果分割文件的理由都不适用,就不要分割”。他们通常甚至为中型项目做。举一个具体的例子,“Hello World”通常应该保存在一个文件中。

于 2013-03-22T22:20:47.093 回答
3

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

于 2013-03-22T22:20:56.703 回答
2

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

于 2013-03-22T22:22:18.553 回答
1

好吧,如果你看看在一个项目中使用超过 1 个代码文件有什么好处?(C++)你会发现拆分代码有很多好处。否则所有这些都会丢失。

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

大多数足够大的项目都有多个文件。在开发过程中,您只会感觉到对它们的不可抗拒(冲动)的需要。谁真正喜欢前后滚动超过 1000 行来进行一些编辑?

是的,这是一件人道的事情。我们必须拆分内容才能理解它们。我们需要处理更小的代码。

于 2013-03-22T22:17:28.533 回答