C++/C就像他没有二进制标准一样,没有统一的代码风格,有unix风格的,有匈牙利风格的。自己很长一段时间也是比较郁闷,后来看到google C++ style的文档受益匪浅。但是STL、MS、Qt等代码风格各有不同,个人就产生了一些思考。
- 缩进
- tab还是空格?更多的文档推荐用空格去而不用tab,仍旧有些会说tab的好处。
- 2、4、8个空格?这对应着不同的缩进深度,2个空格是不是不明显?8个空格是不是按的手疼?4个空格似乎更好些,但是如果多级缩进就会比2个空格更早的超出80个字符的边界了。
- 括号
- 括号(或者其他运算符)是跟在行尾还是另起一行呢?放到行尾知道下一行还有内容,放到下一行的理由是你没有“;”这一行一定没有完成,更能知道单独一行是从上一行的继续。
- 变量与命名
- 类变量在前还是函数在前?
- 匈牙利命名,还是驼峰,还是全小写下划线分割?STL和unix系的大师们都是下划线分割,匈牙利似乎是MFC的专宠,而驼峰在Qt中大量使用而像java、C#这些语言也是这样的风格。
- 成员变量怎么定义,加m还是加m_还是加_后缀还是不加任何修饰
- 需不需要在变量前加类型标识?如果使用的都是原始类型的数据这似乎很有效的区分变量的类型,但是我们大量自定了很多类型似乎这条规则似乎就不那么好用了?
- 头文件定义顺序
- 先自定义头文件后系统头文件,能够更快地发现自定义文件中的冲突。
- 先系统头文件后自定义文件,减少隐藏头文件的依赖。
- 注释
- 注释的第一个目的就是让看代码的人快速的了解代码的意思,还有一个功能就是能够生成开发文档
- doxygen是一个比较通用的更加注释生成文档的工具,开源界更倾向于这种风格的注释。
- 文件
- 一个文件一个类还是按功能分文件?
- 文件尾多一个空行?似乎这没有什么害处。
- 总结
- 不管那种风格,在一个项目中都应该是统一的,不管你的好恶如何
- 什么风格的注释我所谓,关键你应该有注释并把事情说明白
- 不管什么风格,你的代码一定是优美整洁的
- 代码风格的一切是为了效率的平衡
阅读(2282) | 评论(0) | 转发(1) |