通则:
1、在所有命名中,都应使用标准的英文单词或缩写。不得使用拼音或拼音缩写,除非该名字描述的是中文特有的内容,如半角、全角, 声母、韵母等。
2、所有命名都应遵循达意原则,即名称应含义清晰、明确。
3、所有命名都不易过长,应控制在规定的最大长度以内。
4、所有命名都应尽量使用全称。
5、如果命名使用缩写,则应该使用《通用缩写表》(见附录)中的缩写;原则上不推荐使用《通用缩写表》以外的缩写,如果使用,则必须对其进行注释和说明。
6、 命名规则尽量与所采用的操作系统或开发工具的风格保持一致。例如Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。
7、程序中不要出现仅靠大小写区分的相似的标识符,不要出现标识符完全相同的局部变量和全局变量
具体规范:
1、工程名:
不强制统一。
2、文件名:
·基于工程名,开头3个字母应表明与哪一个工程相关。(我认为不太常见)
·后面的字母应能够区别不同的功能。
·不区分大小写。
·长度不限于8.3格式,建议不多于30个字符。
·若文件用于定义和实现类,建议文件名与类名保持一致。
3、函数名:
·参照 Windows API 的命名规范。
·推荐使用动宾结构。函数名应清晰反映函数的功能、用途。
·函数名最长不得超过30个字符。
·函数名第一个字母必须大写。(我认为这是Windows上的习惯)
·全局函数必须以小写前缀"g"开头。
4、变量名:
原则上,变量名的命名遵从匈牙利记法。即:前缀 + 类型 + 变量名
1)格式:
[m_|s_|g_] type [class name|struct name] variable name
2)解释:
m_ : 类的成员变量
ms_:类的静态成员变量
s_ :静态全局变量
g_ :普通全局变量
(如果是函数内的静态变量,我认为用_即可)
(如果是const常量则必需用大写,我认为)
·类型缩写(type)
字符 char, TCHAR: ch (这里TCHAR,我认为用tch,WCHAR,我认为用wch比较清晰)
字符串 char[],TCHAR[]: sz (这里TCHAR,我认为用tsz比较清晰)
string:s
CString:str
(还有LPSTR, LPTSTR, LPCTSTR,我认为用:sz, tsz, ctsz 比较清晰)
布尔型 bool, BOOL: b
整型 int, __int16,__int32,__int64: n
长整型 long: l
双精度实型 double: d
实型 float: f
字节型 BYTE: by
字型 WORD: w
双字型 DWORD: dw
无符型 unsigned: u
指针 pointer :p
LONG指针 lp
句柄 h
结构体 struct: st
(我认为用前缀tag比较鲜明,比如:
typedef struct tagPoint
{
int x;
int y;
} POINT;
)
类 class:CClassName
迭代器iterator iter_
变量名最长不得超过20个字符。(我认为20个字符有限制,应该根据情况尽量言简意赅)
描述部分及常用词缩写:
最大 Max
最小 Min
初始化 Init
临时变量 T(或Temp)
源对象 Src
目的对象 Dest
返回值return : ret
块block :blk
消息message :msg
同步synchro :synch
异步asynchronous:asynch
常量全用大写的字母,用下划线分割单词。如const int MAX_LEN=100;
5、类名:
·必须以大写"C"开头,后面字母反映具体含义,以清晰表达类的用途和功能为原则。
·接口必须以大写"I"开头,代表 Interface 。
·当名称由多个单词构成时,每一个单词的第一个字母必须大写。(我认为这只是Windows上的习惯)
6、宏名、枚举名、联合名:
·下划线_开头,全部大写。
·枚举名加小写前缀"enum"。
例:
typedef enum tagFileOpenMode
{
enumOPEN_READONLY = 0,
} FILE_OPEN_MODE;
·结构名加小写前缀"st"。
例:struct _FileInfo
{
CString strfileName;
} stFileInfo
//·联合名加小写前缀"uni"。
例:
(我认为联合体结构可以如下定义,类似struct)
typedef union tagVariant{
char chVal;
int nVal;
} VARIANT;
转(略有改动):
http://hi.baidu.com/andywangcn/blog/item/bdd15fef0e089f252df534cf.html
http://blog.csdn.net/huayehanshan/article/details/3860363