2010-03-12 95 views
31

C++有几种类型的风格:MFC,Boost,Google等。我想检查这些风格并确定哪一个最适合我的项目,但是我想阅读官方风格指南。有没有人有他们通常使用的官方指南?官方风格指南的链接

这是我发现的两个。我敢打赌,有更多:

注:这不是一个讨论哪些风格是最好的......只是呼吁官方风格指南,人们目前使用。请不要抨击你不喜欢的其他风格指南。

旁边的问题:有没有一个好的工具,可以检查源代码,并告诉它是否符合给定的风格指南?

+7

社区wiki? – Francesco 2010-03-12 16:42:57

+1

我只是喜欢stackoverflow如何自相矛盾。这是关闭的“脱离主题”和C + +书籍线程有成千上万upvotes:https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – JohnJohn 2017-08-18 10:32:10

回答

2

我用我自己的风格,这I have written up here。无论你是否对这种风格感兴趣,如果你在总体上看待风格,你可能会发现我对它的用处的动机进行了讨论。

1

侧面的问题:我个人不知道任何分析使用风格的工具,但有些工具可将源重新格式化为给定的风格指南。想到的是Artistic Style

9

没有“官方”风格指南这样的东西 - C++标准完全没有风格。一本关于这个主题的书籍由两位知名C++家伙编写,其中包括Sutter & Alexandrescu的C++ Coding Standards

4

C++没有,也不需要官方风格。许多组织对他们的贡献者施加风格指南以尝试维持某种企业外观和感觉;其中一些包含很好的建议片段,但许多只是迫使你添加奇怪的装饰,这似乎是一个好主意,在20世纪80年代写给一个完全不同的语言的人。

你会发现华夫之间

唯一真正有用的建议是:

  • 定义一致的方法来区分类型,对象,以及某些类型的函数(如存取和工厂),所以你”我会知道写(例如)Thing thing = GetThing();没有看到名字。
  • 请勿使用下划线开始名称。这在某些情况下是被禁止的,并且它更简单,更可读,而不是完全不用担心,而是完全担心什么时候可以。
  • 为那些在几年内必须阅读和维护代码的可怜的人(也许是你)留下一个想法。
  • 保持简单。
  • 用你的大脑。
4

我也写了良好的编码的一些技巧在C++: http://www.ivanism.com/Articles/CodingStandards.html

员额开头:

编码标准是提高代码的商业价值的目标。最明显的(也是最重要的)这样做的方法是使代码健壮和低缺陷。同样重要的,但更微妙的目标包括减少编码器摩擦和可维护性。因此,标准应该保持最小 - 简单到足以实际遵循,并且重要的是要记住。

构建新源文件时应使用这些标准。当需要更改现有文件时,这是使其达到标准的适当时间。但是,编辑文件只是为了达到标准,这绝不是一个好时机。如果没有损坏,请不要“修复”,并记住始终“保持正常工作”。

你会发现,我不上经典的“宗教”点触摸:

tabs vs. spaces 
indentation style 
curly brace style 
etc... 

文件内的一致性是非常重要的,提高了可读性。但是允许编码者表达自己也很重要。所以,如果您编辑一个文件,要么符合该文件的宗教信仰,要么将整个文件转换为新的一致格式。如果你转换整个文件,你实际上已经掌握了它的所有权,所以要做好准备,或者保持原样。

0

至于侧面问题,你需要的是一个静态分析工具。一个昂贵且巨大的工具是Klocwork。我已经在一些商店中使用过它,并且可以针对样式问题发布警告。我不建议单用户使用它;它更适合企业环境。虽然他们可能已经删除了个人版本。

记住谷歌的静态分析工具。

3

其他答案表明没有官方的风格指南,这在当时是正确的。

但在2015年,Bjarne的Stroustrup的announced the C++ Core Guidelines,一个开源项目,以建立现代C++代码的权威指导,通过Stroustrup的亲自领导和公布由标准C++基金会:

http://github.com/isocpp/CppCoreGuidelines

在相关性这个问题,核心指南也link to other guidelines,并添加了评论。关于经常推荐的Google C++风格指南,他们说:

适用于C++ 03和(也)旧版代码库。谷歌专家现在在这里积极协作,帮助完善这些指导方针,并希望合并努力,以便这些方案可以成为他们也可以推荐的现代通用方案。