什么是使用多个源(优势.cpp
)和头( .h
)文件中的单个项目?
难道仅仅是一个优先的事情还是有真正的好处是什么?
什么是使用多个源(优势.cpp
)和头( .h
)文件中的单个项目?
难道仅仅是一个优先的事情还是有真正的好处是什么?
它可以帮助你分割你的代码,并通过主题排序。 否则,你得到一个文件与线1000 ...这是很难管理...
通常情况下,人们对一个或有时几类h和.C。 此外,它加速了编译,因为只有修改过的文件,以及一些相关的文件需要重新编译。
从C和C ++组织代码文件 :
拆分任何合理规模的项目,买了你一定的优势,其中最显著的有以下几种:
加快编制 -大多数编译器在时间上的文件工作。 所以,如果你所有的10000行代码是在一个文件中,并且更改一条线,那么你必须重新编译10000行代码。 在另一方面,如果你的10000行代码散布均匀地分布在10个文件,然后改变一个行只需要1000行代码重新编译。 9000行中的其他9个文件就不需要重新编译。 (交联时间不受影响。)
提高组织 -沿逻辑线分割你的代码将让你更容易(并在项目中的任何其他程序员)来查找函数,变量,结构/类的声明,等等。 即使直接跳转到在许多编辑和开发环境(如Microsoft Visual C ++)提供的给定标识的能力,总是会有时候,你需要手动扫描代码寻找的东西。 正如分裂码了减少你需要重新编译代码量,也减少了代码,你需要为了找到阅读量。 试想一下,你需要找到你的声音代码在几个星期前所做的修复。 如果你有一个叫GAME.C大的文件,这是一个潜在的很多搜索的。 如果你有几个小文件称为GRAPHICS.C,MAINLOOP.C,SOUND.C和Input.c中,你知道去哪里找,通过3/4削减你的浏览时间。
促进代码重用 -如果你的代码是经过精心分成很大程度上相互独立的操作部分,这可以让你使用这些代码在另一个项目中,为您节省了很多后来重写的。 还有很多更写比只使用一个逻辑文件组织可重用的代码,但没有这样的组织是很难知道哪些代码工作的若干部分,哪些没有。 因此把子系统和类在一个单独的文件,或者如果您尝试使用这些代码在另一个项目中精心描绘的文件集以后可以帮助你。
项目之间共享代码 -这里的原则是一样的,使用重复利用的问题。 通过仔细分离代码到某些文件,您有可能使多个项目使用一些相同的代码文件,而不用复制它们。 共享项目之间的代码文件,而不是仅仅使用复制和粘贴的好处是,您对从一个项目是文件或文件中的任何错误修正会影响到其他项目,所以这两个项目可以确保使用最先进的-to-最新版本。
拆分程序员的编码责任 -对于真正的大项目,这也许是分离代码为多个文件的主要原因。 这是不是不止一个人在任何给定的时间进行更改单个文件的实际。 因此,你需要使用多个文件,以便每个程序员可以在代码的一个独立部分进行工作,而不会影响其他的程序员正在编辑的文件。 当然,还是要检查的是2个程序员不要试图改变相同的文件; 配置管理系统和版本控制系统如CVS或MS SourceSafe帮助你在这里。 上述所有可以被认为是结构的和面向对象的设计的一个关键要素模块化的方面。
然后,他们去了解如何做到这一点 , 潜在缺陷 , 解决问题 ,等等。
你应该检查一下。
代码文件变得难以维护(尝试在他们搜索!)几百行之后。 有些人去到几千(但这已经是一个问题)。 即使是很小的项目有上千行,中项目有行数以万计,和大项目有上百万行的。 文本编辑器无法应付的文件这个大(但程序员自己不能其一)。
拆分项目分成不同的源文件,如果你想你的项目分成不同的编译单元,这使编译更快,因为只有这些项目的部分需要重新编译分开也是必要的 。
几十年前使用的卡一个单一的文件/堆栈进行编写的程序。 然而,这些方案是比较现代的程序渺小,完全不可维护的 - 哪怕是很小的变化基本上是必要重写,里面放一个固定的上限,可能因此可以实现复杂度。
现代的,更复杂的项目基本上是需要裂开。 把一切在一个文件中的问题,是一个坦率地说,我从来没有问过自己,因为这个想法简直不可思议。
不同的cpp文件编译为独立编译单元。 这使您可以从源代码的其余部分隔离的事情(头包裹,匿名命名空间,PIMPL)。
有时候,两个库不能一起在一个源文件使用,因为它们有名称冲突。 这可以通过包括在一个不同的cpp文件中的每个库的头,并通过相应的头文件暴露所需的功能来解决。
如果一个小项目,如世界你好,是没有任何优势,但是想象一下,像窗户,或谷歌浏览器,或Android。
这种规模的项目不可能用一个单一的文件进行管理。
为你的项目的多个文件是关于管理和代码重新可用性。