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

Are there any advantages of _not_ using multiple files in a code-project? (C++)

本文关键字:什么 c++ 文件 项目 代码      更新时间:2023-10-16

相对于在一个项目中使用多个代码文件的优势是什么?(c++)我想知道是否有(技术或其他)不使用多个代码文件的优点,例如,c++项目?

分割成几个文件只是人类的事情吗?在可见性/优化方面,机器一次处理所有这些不是更好吗?

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

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

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

从实际的角度来看,它通常会极大地影响构建时间。大多数人都非常努力地将事情隔离开来,所以对程序的一部分进行更改只需要重新编译程序的一小部分。对于任何比真正的小程序更大的程序,每次进行任何更改时都必须重新编译所有内容,这将是完全无法管理的——对于一个适当大小的程序,构建时间从几秒钟更改为几分钟。

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

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

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

好吧,如果你看看在一个项目中使用多个代码文件的优势是什么?(c++),你会发现拆分代码有很多好处。否则这些都将失去。

使用而不是分割代码的唯一好处是如果你在一个非常小的项目上工作。这样把所有的东西放在一个文件里就方便多了。

大多数足够大的项目有多个文件。你只是在成长的过程中感到对它们不可抗拒的需求。谁真的喜欢前后滚动超过1000行来做一些编辑?

是的,这是一件人道的事情。我们必须把东西分开才能理解它们。我们需要在更小的代码块上工作