use*_*850 13 c++ code-organization project-files
在单个项目中使用多个source(.cpp)和header(.h)文件有什么好处?
这只是一个优惠的事情还是有真正的好处?
Jea*_*ean 20
它可以帮助您拆分代码并按主题对其进行排序.否则你得到一个包含1000行的文件...这很难管理......
通常,人们有一个或几个班级的.h和.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可以帮助您.所有上述内容都可以被认为是模块化的一个方面,这是结构化和面向对象设计的关键要素.
然后,他们继续谈论如何做,潜在的陷阱,解决问题等.
你应该检查一下.
Kon*_*lph 11
在几百行之后,代码文件变得不可维护(尝试在其中搜索!).有些人上升到几千人(但这已经是一个问题).即使是小型项目也有数千条生产线,中型项目有数万条生产线,大型项目拥有数百万条生产线.文本编辑无法处理这么大的文件(但程序员自己也不能).
如果要将项目分成不同的编译单元,则还需要将项目拆分为不同的源文件,这使得编译速度更快,因为只需要重新编译部分项目.
几十年前,程序曾经用一个文件/一叠卡写成.然而,与现代程序相比,这些程序很小,并且完全不可维护 - 即使很小的变化也基本上需要重写,这样就可以实现复杂性的固定上限.
现代的,更复杂的项目基本上需要分开.将所有内容放在一个文件中的问题坦率地说是一个我从未问过自己的问题,因为这个想法简直不可思议.