达内LOGO和北京达内网址达内科技培训项目:Java培训 3G培训 Android培训 软件测试培训北京达内服务电话
C++培训
关于C++代码风格

        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是一个比较通用的更加注释生成文档的工具,开源界更倾向于这种风格的注释。

    文件

    一个文件一个类还是按功能分文件?

    文件尾多一个空行?似乎这没有什么害处。

    总结

    不管那种风格,在一个项目中都应该是统一的,不管你的好恶如何

    什么风格的注释我所谓,关键你应该有注释并把事情说明白

    不管什么风格,你的代码一定是优美整洁的

    代码风格的一切是为了效率的平衡