My E-mail 用志趣吸引人;用感情留住人;用技術武裝人;用創新發展人;一切以人為本!

Leo LU

Leo's 编程规范

命名约定

(1)宏定义用大写字母加下划线表示,如MAX_LENGTH;

(2)函数用大写字母开头的单词组合而成,如SetName, GetName ;

(3)指针变量加前缀p,如 *pNode ;

(4)BOOL 变量加前缀b,如 bFlag ;

(5)int        变量加前缀i,如 iWidth ;

(6)float 变量加前缀f,如 fWidth ;

(7)double变量加前缀d,如 dWidth ;

(8)字符串变量加前缀sz,如 szName ;

(9)枚举变量加前缀e,如 eDrawMode ;

(10)类的成员变量加前缀_,如 _strName, _iWidth ;

(11)全局变量前缀g_

(12)静态成员变量s_

对于 int, float, double 型的变量,如果变量名的含义十分明显,则不加前缀,避免烦琐。如用于循环的int型变量 i,j,k ;float 型的三维坐标(x,y,z)等。

代码规范:

(1)大括号的位置:
    除函数的定义体外,应当将左大括号放在行尾,而将右大括号放在行首。函数的定义体应将左右大括号放在行首。如下所示:
int function(int x, int y)
{
        if (x == y) {
                ...
        } else if (x > y) {
                ...
        } else {
                ...
        }
        return 0;
}

使用断言:
         void  memcpy(void *pvTo, void *pvFrom, size_t size)

{

                   void *pbTo = (byte *) pvTo;

                   void *pbFrom = (byte *) pvFrom;

                   assert( pvTo != NULL  &&  pvFrom != NULL );

                   while(size - - > 0 )

                            *pbTo + + = *pbFrom + + ;

                   return (pvTo);

}
以下是使用断言的几个原则:

(1)使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。

(2)使用断言对函数的参数进行确认。

(3)在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。

(4)一般教科书都鼓励程序员们进行防错性的程序设计,但要记住这种编程风格会隐瞒错误。当进行防错性编程时,如果“不可能发生”的事情的确发生了,则要使用断言进行报警。

指针:
    new 后一定要delete,并且将指针指向NULL,这样下次使用时才不会出错。
        void Test(void)

{

                   float *p;

                   p = new float[100];

                   if(p==NULL) return;

                   …// do something

                   delete p;

                   p=NULL;   // 良好的编程风格

 

                   // 可以继续使用p

                   p = new float[500];

                   if(p==NULL) return;

                   …// do something else

                   delete p;

                   p=NULL;

}

const代替define
const 定义的常量有类型,可用于计算,而define不行。

小心不要将“= =”写成“=”,编译器不会自动发现这种错误。

不要将123写成0123,后者是八进制的数值。

将自己经常犯的编程错误记录下来,制成表格贴在计算机旁边。


posted on 2007-05-07 05:47  Leo LU  阅读(185)  评论(0)    收藏  举报

导航