日前Google放出了C++代码风格规范,可以在此处找到: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml。
这是一份详尽的C++开发代码风格规范,和许多其他公司出的规范一样,这份规范规定了大量应该做什么,不应该做什么的问题,摘抄几个个人认为比较有意思的几个方面:
1、尽量避免异常的编写,这个恐怕是很多学现代语言的人所很不能够忍受的,尤其是从java那边过来的,或者是C++中编写异常安全代码的人所不能够接受的,上面的规范也仔细的提及了赞同的与不赞同的观点。正如C++的产生是由其历史原因的,兼容C的代码以及与C类似的风格,导致很多用C++的第三方库不一定都使用了异常,这就导致了异常的检查会变得非常麻烦,Google考虑到了更多第三方兼容的原因,要求在代码中尽可能避免异常编写。
2、RTTI的使用,异常都已经被尽可能的移出了,RTTI也就自然被禁用了。
3、实现文件的命名,很有意思,用.cc来命名,不是常见的cpp,没看出来有什么好处!?
4、内联函数放置在-inl.h中,这个比直接在.h文件中要清楚一些,通过文件名就可以区分是普通的头文件还是内联函数文件。
5、Google提供了一个用来检查符合这个规范的python程序文件cpplint.py。Google还是很喜欢Python的风格的。
6、避免匈牙利命名法,这个可能很难在windows平台上经常性开发MFC程序的人接受了。
7、对于LPCTSTR的说法,是显示的描述比那个隐含的描述要好一些,于是要求尽可能使用const TCHAR* 来定义
8、对于参数引用,要求必定是const类型,这个很有必要,虽然引用也可以传出值,但是在调用方,并不能够从代码中一眼就可以很清楚的看出,这个
引用是可能返回值的,也极其容易导致代码中风格规范的不一致,用指针来表示传出值,相对就会更加明显一点,如果两者结合起来,就很容易明白什么样的参数是传递进去的,什么样的参数可能会有传出值。
其他的规范,在其他公司出的命名规范或者代码风格规范中,也是有类似或者相同的说法,就不列出来了,想要看的,直接去
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
当然,google的东西也不全是ok的,是好是非,自个儿取舍,关键是自己有一个稳定的代码风格。