点击查看Evernote原文

#@author:       gr
#@date: 2014-08-15
#@email: forgerui@gmail.com

记录一些标准规范。让自己的编码更可读,更可维护。(代码风格尽量统一)

一、Contents

1. tab or spaces

尽量使用spaces取代tabtab键可能在不同编辑器缩进不同,导致混乱。把tab使用4个space代替。

2. 代码换行

如果一行超过80个字符,则需要进行换行。第二行应以第一行同一级的位置开始,如果这样太靠右,可以缩进8个空格。换行的地方可以在,(逗号)后面,或者操作符前面,保证不会因为换行导致歧义。

3. 在for, if, while等后面需要空一格

空一格会保证代码更易读,更优雅。

for(int i; i < 10; ++i){}
for (int i; i < 10; ++i){}
while(i < 10){}
while (i < 10){}

4. 单行注释上方尽量空一行

//快速排序
quick_sort(a);
//归并排序
merge_sort(a);

更好的写法是,下面的写法在代码多的时候更优秀。

//快速排序
quick_sort(a); //归并排序
merge_sort(b);

5. 操作符两边空格

操作符两边都要空格,逗号后面要空格,最基本的编程素养,重要性就不说了。注意要手敲这些空格,强烈不推荐使用代码格式化工具去做这些工作,如果以后在文本编辑器中,没有IDE,那写的代码简直是一坨。

int a=1,b=3,c=4;
int a = 1, b = 3, c = 4;
if(a>b);
if (a > b);

6. 命名

  • 变量命名尽量统一,比如统一使用小写字母加下划线的格式。

      //可以
    int node_flag;
    int nodeFlag;
    //不可以
    int Node_Flag;
  • 类型命名使用大小写交替的形式,类型包括class, struct, enum ...

    class TrackRouter{};

    struct SensorNode{};

    enum SensorStatus{RUN, STOP, DESTROY};

  • 函数使用大小写字母交替表示,第一个单词首字母小写,之后每个单词首字母大写。

      void addTable();
    inline int get_status();
  • 文件命名以小写下划线组合。

  • 宏定义使用大写字母下划线。

  • 命名空间小写下划线。

7. 头文件卫士

在头文件中尽量使用头文件卫士。防止头文件被重复引用。

#ifndef _A_H_
#define _A_H_
...
#endif//_A_H_

8. 循环

循环次数多的放在里面,这样可以减少CPU跨切循环层次数。

for (int a = 0; a < 5; a++){
for (int b = 0; b < 100; b++){
//...
}
}

尽量减少循环里的判断。

for (int i = 0; i < 5; i++){
//尽量移到循环外面
if(){}
else{}
}

###Maintainable C++的更多相关文章

  1. Building Maintainable Software-java篇之Separate Concerns in Modules

    Building Maintainable Software-java篇之Separate Concerns in Modules   In a system that is both complex ...

  2. JavaScript Patterns 2.1 Writing Maintainable Code

    Revisiting the code after some time has passed requires: • Time to relearn and understand the proble ...

  3. Building Maintainable Software-java篇之Couple Architecture Components Loosely

    Building Maintainable Software-java篇之Couple Architecture Components Loosely There are two ways of co ...

  4. Practical Go: Real world advice for writing maintainable Go programs

    转自:https://dave.cheney.net/practical-go/presentations/qcon-china.html?from=timeline   1. Guiding pri ...

  5. [转][C++ 11]override and final - write clean and maintainable C++ code

    原文: http://arne-mertz.de/2015/12/modern-c-features-override-and-final/ Today I write about a pair of ...

  6. Maintainable HashCode and Equals Using Apache Commons

    Java hashCode and equals methods can be tricky to implement correctly. Fortunately, all majors IDEs ...

  7. Maintainable JavaScript(编写可维护的JavaScript) PART I Style Guidelines

    “Programs are meant to be read by humans and only incidentally( 顺便:偶然地:附带地) for computers to execute ...

  8. JavaScript Maintainable

    1. Avoid conflict with Native Variable namespace

  9. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

随机推荐

  1. light oj 1138 - Trailing Zeroes (III)【规律&&二分】

    1138 - Trailing Zeroes (III)   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit:  ...

  2. 射频识别技术漫谈(5)——防冲突【worldsing 笔记】

    正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作.但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突. 防冲突机制是非接触式智能 ...

  3. Android的事件处理

    1 android事件处理概述 不论是桌面应用还是手机应用程序,面对最多的就是用户,经常需要处理用户的动作-------也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理.andr ...

  4. 正确导入svn拉取的工程

    为什么要写这篇博文?主要是记录摸着石头过黄河的过程.之前在eclipse装了svn插件,拉取远程工程,在eclipse显示的工程,并不会分开显示模块工程,反而 是以总工程的姿态呈现.或许你觉得不管分模 ...

  5. Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心

    C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...

  6. HDU 5477 A Sweet Journey 水题

    A Sweet Journey Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...

  7. 12.1 文档相关 Webbrowser 该文档已被修改,是否保存修改结果

       附件:http://files.cnblogs.com/xe2011/Webbrowser_Document_IsModified.rar   该文档已被修改,是否保存修改结果?是:保存修改结果 ...

  8. Android 电子邮件发送成功与失败的提示

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载.但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  9. Linux性能优化--CPU[备忘]

    http://kumu-linux.github.io/blog/2014/04/21/performance-cpu/

  10. linux crt

    1.仿真  终端选linux  ANSI颜色[有颜色了] 使用颜色方案[颜色加深了] 2.外观  选传统的 ,utf-8 就不会乱码了