1:一行代码仅进行一种动作,如定义一个变量,或执行一条语句。

if..else..for..do..while 等必须单独占行,执行语句不得在其后,执行语句无论多长必须添加{ }。

例如:

int width,height,depth; //宽度高度深度
if(width<height)dosomething();

上面代码不标准可更换为

int   nWidth; // 宽度
int   nHeight; // 高度
int   nDepth; // 深度

if( nWidth < nHeight )
{
     DoSomeThing(); 
}

2:空格。

所有关键字前后保留空格,包括for (; ; ){}。 所有函数名后不留空格,例如Fun();。 逗号分号后保留空格。 操作运算符前后尽量留空格。

3:代码缩进

所有大括号均占两行,并且配对的进行对齐缩进。

4:修饰符靠近变量名

原因如下:int* x,y;我们会认为y是int*类型的,而实际上仅是int型的。但是这样比较直观。

int *x,y;不容易将y误解。

5:注释

1);注释应当放置在代码的上方或右方,不可放下方。 2);代码较长且多重嵌套时,应当在段落结束处添加注释,end of XXX,以便阅读 3):自定义比较复杂的函数时,应先加以说明:

/*
*函数介绍:
*输入参数:
*输出参数:
*返回值:
*/

6:类声明

首先对Public接口函数声明,之后再对Private数据进行声明,第一使自己设计类时思路清晰,第二方便别人阅读。

7:命名规则

数据均采用“匈牙利”命名法。

类的成员函数使用单动词,全局函数使用动宾结构。 类名,函数名以大写开头,采用Windows大小写混编,不使用下划线。 变量,参数以修饰符g(全局),m(成员),s_(静态)等为首,之后跟类型。 常量以全部大写为准,以下划线分割。 所有函数,类,宏定义,变量,参数,常量,在遵循以上标准后,添加FK进行标识。

8:数据初始化均放在类构造函数的初始化表中进行。

9:函数无参数,则使用void填充。

switch后必须跟配对的Default,即使仅有一个Break

10:Copy类型的函数,目的参数在前,源文件在后。

多使用GetSet等配对函数。

设置SafeFree,SafeDelete,SafeDelete []

11:避免30行以上的大段函数,每一个函数实现且仅实现一个功能为佳

12:Debug版本下,使用assert断言来查错

值得注意的是,非法情况可以不做处理,但错误情况必须做出相应的处理提示。避免一切宏定义,可使用内联函数替代宏定义,使用const替代宏定义常量。