1、类型命名(class,struct ,enum ,define)
每个单词以大写开头,不含下划线
class:
以C开头
例:class CUrlTable;
接口:
以I开头
struct:
以tag开头 ,全部用大写字母表示(单词单用_隔开)
struct tag_RECT
{
};
typedef tag_RECT RECT;
enum ,define:
全部用大写字母表示(单词用_隔开)
例:enum TYPE
{
TYPE _FIRST,
TYPE _SECOND
};
#define MAX_PATH
2、变量命名
前缀 + 类型 + 变量名
[m_|s_|g_] type [class name|struct name] variable name
前缀声明:
m_ 类成员变量
s_ 静态变量
g_ 全局变量
类型缩写:
char ch
char[],char* sz
bool b
int n
long l
double d
float f
byte by
word w
dword dw
unsigned u
function fn
pointer p
每个单词以大写字母开头
(1) 普通变量(结构体成员) string strName;
(2) 类成员 string m_strName;
(3) 全局变量 string g_strName;
(4) 常量 const string strNAME_XY = “xyz”;
(前缀+全大写,单词间用_隔开)
函数参数中的const传递应按照普通变量命名规则命名
3、函数命名
(1)全局函数(以大写字母开头)
void GetWidth();
(2)成员函数(以小写字母开头)
保持动宾结构,动词小写,名词大写
void getWidth();
存取函数:
与存取成员变量保持一致
class CMyClass
{
public:
int getValue()const;
void setValue(int nValue);
private:
int m_nValue;
};
函数参数:
左边为输入参数,右边为输出参数
输入参数加const,参数最好不要用值传递
void copyString(const char *szSrc,char *szDest);
函数的返回值:
对于函数的返回位置,尽量保持单一性,即一个函数尽量做到只有一个返回位置。
(单入口单出口)。
统一函数的返回值,所有的函数的返回值都将以编码的方式返回。
4、注释
(1)函数头的注释
对于函数,应该从“功能”,“参数”,“返回值”、“主要思路”、“调用方法”、“日期”六个方面用如下
//=============================================//
// 功能: 从一个String 中删除另一个String。
// 参数:
// (入口)
strByDelete: 被删除的字符串(原来的字符串)
// (出口)
strToDelete: 要从上个字符串中删除的字符串。
// 返回值: 找到并删除返回1,否则返回0。(对返回值有错误编码的要
// 求列出错误编码)。
// 调用方法:......
// 编写时间: 2000/8/21.9:40--2000/8/23.21:45
//===============================================//
(2)变量的注释
对于变量的注释紧跟在变量的后面说明变量的作用。原则上对于每个变量应该注释,但对于意义非常明显的变量,如:i,j等循环变量可以不注释。
例如:
long lLineCount //线的根数。
(3)文件的注释
文件应该在文件开头加入以下注释:
/////////////////////////////////////////////////////////////////////
// 工程:
文件所在的项目名。
// 作者: **,修改者:**
// 描述: 说明文件的功能
// 版本:
说明文件的版本,完成日期
// 修改:
说明对文件的修改内容、修改原因以及修改日期。
/////////////////////////////////////////////////////////////////////
(4)其他注释
必须在各功能模块的每一主要部分之前添加块注释,注释每一组语句。
循环、条件、选择等位置必须注释。