###Maintainable C++
点击查看Evernote原文。
#@author: gr
#@date: 2014-08-15
#@email: forgerui@gmail.com
记录一些标准规范。让自己的编码更可读,更可维护。(代码风格尽量统一)
一、Contents
1. tab or spaces
尽量使用spaces
取代tab
,tab
键可能在不同编辑器缩进不同,导致混乱。把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++的更多相关文章
- Building Maintainable Software-java篇之Separate Concerns in Modules
Building Maintainable Software-java篇之Separate Concerns in Modules In a system that is both complex ...
- JavaScript Patterns 2.1 Writing Maintainable Code
Revisiting the code after some time has passed requires: • Time to relearn and understand the proble ...
- Building Maintainable Software-java篇之Couple Architecture Components Loosely
Building Maintainable Software-java篇之Couple Architecture Components Loosely There are two ways of co ...
- 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 ...
- [转][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 ...
- Maintainable HashCode and Equals Using Apache Commons
Java hashCode and equals methods can be tricky to implement correctly. Fortunately, all majors IDEs ...
- Maintainable JavaScript(编写可维护的JavaScript) PART I Style Guidelines
“Programs are meant to be read by humans and only incidentally( 顺便:偶然地:附带地) for computers to execute ...
- JavaScript Maintainable
1. Avoid conflict with Native Variable namespace
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
随机推荐
- MongoDB系列一(安装)
一.MongoDB在Windows平台下的安装: 安装包官方下载地址:http://www.mongodb.org/downloads 第一步:下载安装包:如果是win系统,注意是64位还是32位版本 ...
- Genymotion中文手册
目录1.概述 22.特点 22.1最擅长于虚拟Android 22.2高可控性 22.3管理你的设备 22.4从Eclipse中开启虚拟设备 33.要求 33.1操作系统要求 33.2系统硬件要求 3 ...
- C++容器类的简介
C++容器类的简介 一.原型与构造函数 Vector的原型可定义为 vector<T, allocator <T> > 其构造函数为 vector() ...
- XML文件
XML 指可扩展标记语言(eXtensible Markup Language) XML 被设计用来传输和存储数据. 什么是 XML? XML 指可扩展标记语言 XML 是一种标记语言,非常类似 HT ...
- 经常使用的webservice接口
Web Service 一些对外公开的网络服务接口 2011-10-29 14:12 商业和贸易: 1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同一时候查询) En ...
- 【转】通过CMD命令设置定时关机及ShutDown命令大全
经常会遇到这种情况:现在有个事情要离开很长时间,到那还在下载一个东西仅差10分钟就完成了,或者杀毒之类,不想让电脑一直开着也不想现在就停止工作.这是就会用到定时关机. 电脑系统设置(CMD命令)智能关 ...
- android学习日记05--Activity间的跳转Intent实现
Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...
- isstream例子
假如有一个文件,列出了一些人和他们的电话号码.某些人只有一个号码,而另外一些人则有多个——家庭电话.工作电话.移动电话等.我们的输入文件看起来是这样的: morgan 2015552368 86255 ...
- js 数组排序要注意的问题,返回的值最好为 -1, 0, 1之间的值
var test10Elements = [7, 6, 5, 4, 3, 2, 1, 0, 8, 9]; var comparefn = function (x, y) { return x - y; ...
- PAT 1011
1011. World Cup Betting (20) With the 2010 FIFA World Cup running, football fans the world over were ...