C++ 命名规则

来源:互联网 发布:淘宝会员v3等级 编辑:程序博客网 时间:2024/06/03 03:29
 

通则:
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

原创粉丝点击