http://munix.mypm.net
公 告
登 陆
日志日历
导 航
日 志
评 论
链 接
统 计
 
软件代码开发基本规范

开发规范 1.0

munix

1、代码风格规范

1.1 C/C++/Java代码风格

命名格式:

1文件命名都用英文小写,C代码文件命名为xxx.cC++代码文件命名为

xxx.cc/xxx.cpp

2所有的命名都以英文词语定义;

3采用匈牙利命名法则;

4复合词以首字大写区隔

5变量和函数以小写开头

6classstructunion大写开头

7全局变量和C++中的全局函数以_”(下划线)开头,但不用两个以上下划线,以免和libc中的变量冲突;

8缩写一律用全大写,并注释说明含义(一些约定俗成的用语可以不用);

9单字变量只能用于循环,判断等临时运算中;

10            宏定义以全大写,复合词以下划线区隔。

命名范例

局部变量命名:

int numberchar* name……

局部复合变量命名:

int totalNumberchar* errorMessage……

全局变量命名:

int _currentIDchar* _currentUser……

局部函数(或所有C代码中的函数):

int getNumber( )

C++中的全局函数:

int _getCurrentID( )

类、结构、联合的命名:

    class User {

……

    };

  

    struct UserInfo {

        ……

}; 

缩写:

    char* PSTNNumberint LDAPAccount…… 

约定俗成缩写:

    int tcpPortchar *ipv4Address……

宏定义:

    #define MAX_NUMBER      100 

单字变量:

    int i;

    for(i=0;  i<number;  i++) {

        ……

    }

 

空格格式:

1“运算符”两边需要空格;

2“逗号、分号”右边空格;

3“左大括号”左边空格;

4当有多个空格层次时,只保证最上面一层空格,其他不用空格。

 

空格范例:

int number,  i;

 

number  =  0;

i  =  20

 

number  =  i  *  20;

 

左大括号空格:

if  (number  <  100)  {

    ……

} 

多个空格层:

for  (i=0;  i<10  ;  i++)  {

    ……

}  /**这里只保留了分号处的空格,运算符“=”“< ”就不用空格*/

 

 

大括号格式:

1左大括号放在行尾,并左边空格;或左大括号另一起行并与最近的函数体对齐。

2右大括号另取一行,并独占该行(除注释)

3左括号后的代码另取一行(除注释);

4单行的if/while/for可以不用大括号。

大括号范例:

int main(int argc, char** argv)  {

    int number  =  0;

    printf(“number  =  %d\n”,  number);

    return 0;

}

 

单行处理:

if (number  ==  0)

    return 1;

 

缩进格式

1大括号内的代码要缩进一层;

2单行的if/while/for处理要缩进一层;

3缩进以一个“tab”或4个空格为一层;

缩进范例:

While(res)   {

    …………

}

 

if(res  ==  1)

       ……

 

注释格式:

1、采用JavaDoc注释;

2一般不用“//”注释,除和“/**/”注释有冲突列外;

3注释部分在被注释代码之前;

4短注释可以跟在行尾(尽量不用);

5文件开头需要注释;

6复杂算法需要注释;

7缩写需要注释;

8function声明需要注释;

9classstructunion声明需要注释;

10            更改他人代码需要注释;

11            注释用英文。

 

注释范例:

文件开头注释:

/**

This file wrote for Class UserInfo

@lisence GPL

@author Smith.Spud.

@version 1.0.0 2003-12-10

*/

 

类注释:

/** Class User for access user’s information.*/

 

class User  {

public:

    ……

};

 

方法注释:

/**Function for get user information.

* @param userName  –  String type, user’s name who be read.

* @return UserInfo*  -  User’s information who be read, or NULL if error.

*/

UserInfo * getUserInfo(String userName);

 

修改他人代码:

/**

Modified by Paul in 2003-12-30 for free memory bug.

Old Code:

[old source code be marked]

*/

[new source code]

/**modified end*/

例如:

/**

Modified by Paul in 2003-12-30 for free memory bug.

Old Code:

If(p  ==  NULL)

    Free(p);

*/

 

if(p  !=  NULL)

    Free(p);

/**modified end*/

缩写注释:

int UID; /**User ID*/

 

munix 发表于 2009/3/6 11:47:00 阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志

发表评论:

    昵称:
    密码:
    主页:
    标题: