C变量规范命名规则.doc
文本预览下载声明
1.变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。
?2.第一个字母不能是数字,例如2Lerver这不是一个合法的C++变量。
?3.不能是c++关键字,例如不能用class这个单词来命名一个变量。
?4.区分大小写,例如iA和ia是两个不同的变量。
理论上,在遵守了上面几条规则的前提下,所声明的变量名称都是合法的。比如下面的命名:
char xueshengming[20]; //学生名
char a; //命名一个字符,但变量名毫无意义
这样的变量命名尽管是合法的,但可读性非常差。正规的软件公司,对于变量命名往往都有自己的一个推荐规范。不同公司的规范又会有一些差别。当一个程序员从一个公司跳槽到另一个公司,甚至会出现不习惯新公司代码规范的现象。
万事万物,要是有一个统一的规范,也许程序员这个行业会少一些烦恼。俗话说得好:没有规矩,不成方圆。以下是笔者多年编码得出的变量命名的心得体会,在此总结如下,并奢望有招一日能成为行业规范。
变量命名的宗旨:
一、用最短的字符表示最多的意义。
int iPosX; //Pos表示位置,X表示横坐标
//个人比较喜欢用n做前缀
二、使用变量前缀
在变量前带上小写前缀可以很直观的看出变量的数据类型,而不必到变量的定义处去查看。常用的数据类型推荐变量前缀:
1.整型的前缀
short sValue; //s为short的前缀
int iAge; //i为int的前缀
unsigned int uiAge; //ui为unsigned int的前缀(两个单词的首字母)
//也有用u做前缀的
long lValue; //l为long的前缀
2.浮点型的前缀
float fScore; //f为float的前缀
double dValue; //d为double的前缀
3.字符型的前缀
char cChar; //c为char的前缀
//个人喜欢用a做前缀
TCHAR tcChar //多字节字符和Unicode字符兼容类型的前缀tc
wchar_t wcChar //宽字符前缀wc
4.字符串的前缀
char szName[30]; //sz为C语言字符串的前缀
string strName; //str为C++字符串变量的前缀
CString strInfo; //str为MFC字符串变量的前缀
5.布尔型的前缀
bool bPass; //b为bool的前缀
6.指针型的前缀
?int *pValue; //p为指针的前缀
说明:由于指针是指向一定数据类型的变量,因此p后面要不要再加一个前缀一直让我举棋不定。如果再加上前缀比如: int * piKey;
char * pszInfo;
这样似乎意义更完整,但势必会增加变量的字符长度。因此,这里就不硬性规定了。但是,指针变量以p开头应该是雷也打不动的。
7.数组的前缀
?int arrNum[10]; //arr为数组的前缀
说明:和指针变量一样,arr后是否再加数组元素的数据类型前缀取决于你自己。
string arrstrName[3]; //C++字符串数组,加上去似乎很别扭
8.枚举变量的前缀
?enum emWeek; //em为枚举变量的前缀
9.结构变量的前缀:t
T_NODE tNode; //结构名称以T_开头
10.字节变量的前缀:by
BYTE byInfo;
11.字变量的前缀
DWORD dwInfo; //双字
WORD wInfo; //单字
12.字符指针的前缀
LPCTSTR ptszInfo; //ptsz表示前缀,t表示TCHAR类型
LPCSTR pszInfo;
LPSTR pszInfo;
13.STL容器类型前缀
vectorint vecValue;
说明:vec表示vector容器的前缀,为了简化变量,变量体后面不再使用前缀
listdouble lstInfo;
14.MFC绑定控件变量的前缀
CEdit m_ctlName; //对象变量,变量体前统一用ctl表示
//个人喜欢用m_ctrl
int m_iAge; //值变量,变量体有表示值数据类型的前缀
说明:由于长短指针在32位操作系统后已无区别,所以不再区分,一律以p开头,这也与指针变量以p开头的原则贴得更近。
15.矩形结构的前缀:rc
RECT rcClient;
CRect rcWin;
16.句柄对象一律以h开头
HWND hWndName;
显示全部