我的代码规范

头文件

先系统头文件,后用户头文件

只引用需要的头文件。

空行:

文件头、控制块,#include部分、宏定义部分、class部分、全局常量部分、全局变量部分、函数和函数之间,用两个空行。

注释:

作者,文件名称,文件说明

关键函数必须写上注释,说明函数的用途。

特别函数参数,需要说明参数的目的,由谁负责释放等等。

除了特别情况,注释写在代码之前,不要放到代码行之后。

对每个#else#endif给出行末注释。

关键代码注释,包括但不限于:赋值,函数调用,表达式,分支等等。

善未实现完整的代码,或者需要进一步优化的代码,应加上 // TODO …

调试的代码,加上注释 // only for DEBUG

需要引起关注的代码,加上注释 // NOTE …

对于较大的代码块结尾,如for,while,do等,可加上 // end for|while|do

命名:

 

函数参数用a作为前缀。
避免出现和匈牙利混合的命名规则如apBuffer名称。用aBuffer即可。
函数参数比较多时,应考虑用结构代替。
如果不能避免函数参数比较多,应在排版上可考虑每个参数占用一行,参数名竖向对齐

代码风格:

每一行开始处的缩进只能用Tab,不能用空格,输入内容之后统一用空格。除了最开始的缩进控制用Tab,其他部分为了对齐,需要使用空格进行缩进。这样可以避免在不同的编辑器下显示不对齐的情况。

在代码行的结尾部分不能出现多余的空格。

在"::","->","."前后加空格。

不要在",",";"之前加空格。

类,结构,枚举,联合:大括号另起一行。

函数体的{需要新起一行,在{之前不能有缩进。

除了特别情况,函数体内不能出现两个空行。

除了特别情况,函数体内不能宏定义指令。

在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

在头文件定义的inline函数,函数之间可以不用空行,推荐用一个空行。

空循环可用 for( ;; ) 或者 while( 1 ) 或者 while( true )。

避免在表达式中用赋值语句。

避免对浮点类型做等于或不等于判断。

不能将枚举类型进行运算后再赋给枚举变量。

在循环过程中不要修改循环计数器。

检测空指针,用 if( p );

检测非空指针,用 if( ! p )。

函数:

引用类型作为返回值:函数必须返回一个存在的对象。

引用类型作为参数:调用者必须传递一个存在的对象。

构造函数的初始化列表,应和类的顺序一致。

初始化列表中的每个项,应独占一行。

避免出现用一个成员初始化另一个成员。

构造函数应初始化所有成员,尤其是指针。

不要在构造函数和析构函数中抛出异常。

 

posted @ 2020-09-19 23:24  我来打题了  阅读(88)  评论(0编辑  收藏  举报