引擎设置规范计划(二)
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替代宏定义常量。