与What are the advantages of using more then 1 code file for a project? (C++)相反,我想知道是否有(例如C++)项目不使用多个代码文件(技术或其他)的优点?在代码项目中不使用多个文件有没有优点? (C++)
是分裂在几个文件只是人类的东西?在可见性/优化方面,机器一次处理所有这些问题不是更好吗?
与What are the advantages of using more then 1 code file for a project? (C++)相反,我想知道是否有(例如C++)项目不使用多个代码文件(技术或其他)的优点?在代码项目中不使用多个文件有没有优点? (C++)
是分裂在几个文件只是人类的东西?在可见性/优化方面,机器一次处理所有这些问题不是更好吗?
那么,如果你看看What are the advantages of using more then 1 code file for a project? (C++),你会发现拆分代码有很多优点。否则所有这些将会丢失。
不是的唯一好处如果您正在开发一个非常小的项目,那么将您的代码拆分。然后将所有内容保存在一个文件中更方便。
大多数足够大的项目都有多个文件。在开发过程中,你只是感受到他们不可抗拒(急切)的需求。谁真的喜欢滚动回来和超过1000年的线路进行一些编辑?
是的,这是一个人性化的东西。我们必须分割东西才能够理解它们。我们需要处理更小的代码。
这并不能帮助我。我想知道在编译期间还是一般情况下是否有优势。 – 2013-03-22 22:20:13
@PatrickB。如果没有?如果这导致了编辑时间的增加和编译时间的增加呢?如果没有编译器设计*来有效处理多文件代码,会怎么样? – Jean 2013-03-22 22:21:59
这实际上是一个微妙的问题。当文件符合其他问题中回答的标准之一时,即当文件或项目“足够大”以至于更易于分割时,分割文件才是有利的。如果不符合这些标准,则没有优势。所以这个问题的答案是“如果分裂文件的理由都不适用,请不要分裂。”它们通常适用于中型项目。为了给出一个具体的例子,“Hello World”通常应该保存在一个文件中。
如果你想发送该程序作为电子邮件附件,那么你只需要附加一个文件。
这是一个公平点。并巩固我的判断结束这个问题不建设性。 – djechlin 2013-03-22 22:21:22
如果你发送一个档案,你只需要发送一个文件。此外,只需发送一条链接到github/bitbucket/...存储库! – sehe 2013-03-22 22:24:21
我总是忘记档案,并最终附上几十个文件。谢谢你提醒我! – StackedCrooked 2013-03-22 22:35:06
将所有内容放到单个文件中将会破坏文件级静态和匿名命名空间的目的(并且不需要extern声明)。
尽管编译器并没有太多好处。对于诸如优化之类的事情,他们只是简单地实现需要全局可见性的部分(并且大多数当前连接器包括这样的优化/代码生成能力)。
它会(或至少可以)减少完整重建的总时间。使用单独的源文件,您将结束重新编译每个包含它的源文件的每个头。只有一个源文件,你只需要编译一次(但是预编译的头文件可以并且通常会减少这个问题,至少在你使用它的时候可能很少)。
从实际的角度来看,通常会大大影响构建时间。大多数人都很努力地将事情隔离开来,因此程序某一部分的改变只需要重新编译一小段程序。对于任何不是真正微乎其微的程序而言,每次进行任何更改时都不得不重新编译所有内容,这是完全难以管理的 - 对于体型适中的程序,您的编译时间会从几秒钟变为几分钟。
如果一切都在一个编译单元中,编译器可能会做更多的优化,这就是sqlite3以这种方式分布的原因。
这是*年代*编译器的真实情况,但几乎所有的现代编译器都支持链接时间代码生成和其他强大的优化,这些优化大部分都归咎于历史好奇心的领域。 – 2013-03-23 00:07:28
多数民众赞成在他所链接的问题;) – 2013-03-22 22:16:20
这是一个问题,这引发了我的问题,我想起了一段时间以来。我认为这不仅仅是答案的反面。 – 2013-03-22 22:17:26
@pst with * machine *我的意思是任何文件处理(编译,但也解析和其他)。 – 2013-03-22 22:22:28