繁体   English   中英

独立的翻译单位

[英]Separate translation units

在询问另一个问题时,我被告知使用单独的翻译单元(文件)的可能性,因为我的当前代码似乎由于其太大而无法编译。

现在,我一直在研究如何使用单独的翻译单元,但是坦率地说,我什至不知道从哪里开始。 如果目前我只有一个main.cpp文件,并且想将其拆分为3个部分,则其中将有一个“ variables1.cpp”,一个“ variables2.cpp”和一个main.cpp,在其中计算等,我将如何使用Visual Studio做到这一点?

这是程序员的主要任务之一,即如何以这种“分离”使代码的逻辑变得清晰的方式来构造代码。 有些将使用一个类/一个文件。

我认为这个问题需要一个非常详细的答案。 也许您应该阅读这篇文章: 用C和C ++组织代码文件

拆分任何规模合理的项目都会给您带来一些好处,其中最重要的是:

加快编译速度 -大多数编译器一次处理一个文件。 因此,如果所有10000行代码都在一个文件中,并且更改了一行,则必须重新编译10000行代码。 另一方面,如果将10000行代码平均分布在10个文件中,则更改一行仅需要重新编译1000行代码。 其他9个文件中的9000行将不需要重新编译。 (链接时间不受影响。)

增加组织 -沿逻辑线拆分代码将使您(和项目中的任何其他程序员)更容易找到函数,变量,结构/类声明等。 即使具有直接跳转到许多编辑器和开发环境(例如Microsoft Visual C ++)中提供的给定标识符的功能,也总是需要手动扫描代码以查找某些内容。 正如拆分代码减少了您需要重新编译的代码量一样,它也减少了为了查找内容而需要阅读的代码量。 想象一下,您需要找到几周前对声音代码所做的修复。 如果您有一个名为GAME.C的大文件,则可能要进行大量搜索。 如果您有几个名为GRAPHICS.C,MAINLOOP.C,SOUND.C和INPUT.C的小文件,那么您知道应该在哪里查看,从而将浏览时间缩短了3/4。

促进代码重用 -如果将您的代码仔细地划分为可在很大程度上彼此独立的部分,则可让您在另一个项目中使用该代码,从而节省了以后的大量重写工作。 编写可重用代码的不仅仅是使用逻辑文件组织,还有很多,但是如果没有这样的组织,很难知道代码的哪些部分可以协同工作,哪些不能。 因此,如果您尝试在另一个项目中使用该代码,则将子系统和类放在单个文件或一组精心划定的文件中将对您有所帮助。

在项目之间共享代码 -此处的原理与重用问题相同。 通过仔细地将代码分成某些文件,您可以使多个项目使用某些相同的代码文件而无需复制它们。 在项目之间共享代码文件而不是仅使用复制和粘贴的好处是,您对该文件或一个项目中的文件所做的任何错误修复都会影响另一个项目,因此,两个项目都可以确保最多使用最新版本。

在程序员之间分配编码职责 -对于大型项目,这也许是将代码分成多个文件的主要原因。 一个以上的人在任何给定时间对单个文件进行更改都是不切实际的。 因此,您将需要使用多个文件,以便每个程序员可以在代码的单独部分上工作而不会影响其他程序员正在编辑的文件。 当然,仍然需要检查2个程序员不要尝试更改同一文件。 配置管理系统和版本控制系统(例如CVS或MS SourceSafe)在这里为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM