前言
在初學(xué)C++的時(shí)候筋搏,一定要養(yǎng)成良好的命名習(xí)慣才可以讓程序的可讀性大大提高,這里我整理和收集了一些有用的命名規(guī)則,以便自己 后續(xù)程序閱讀和分享硝烂。其中一些摘自網(wǎng)絡(luò),將比較常識(shí)性的東西去掉了铜幽,保留了自認(rèn)為有價(jià)值的一些內(nèi)容滞谢。
變量命名
變量或者函數(shù)的命名通常有一些準(zhǔn)則可供參考,這里僅僅羅列了比較有用的一些:
準(zhǔn)則 | 描述 |
---|---|
最小長度原則 | 語意明確情況下除抛,應(yīng)當(dāng)縮短命名長度 |
不重命名 | 在不同作用域中盡量不適用相同的命名 |
避免出現(xiàn)數(shù)字符號 | 避免名字中出現(xiàn)數(shù)字符號 |
狮杨、
變量名稱由作用域+類型前綴+一個(gè)或者多個(gè)單詞組成
作用域前綴
作用域前綴的常見寫法如下:
前綴 | 說明 |
---|---|
無 | 局部變量 |
m_ | 類的成員 |
sm_ | 靜態(tài)類的成員 |
s_ | 靜態(tài)成員 |
g_ | 外部全局變量 |
sg_ | 外部靜態(tài)全局變量 |
gg_ | 進(jìn)程間共享的全局變量 |
其中:除非不得已,盡可能少用全局變量
類型前綴
普通類型
普通類型是我們常見的一些數(shù)據(jù)類型镶殷,沒有經(jīng)過自定義
前綴 | 說明 | 關(guān)鍵詞 | 示例 |
---|---|---|---|
n | 整形和位域變量 | number | int nCode |
e | 枚舉變量 | enum | emum type eColor |
c | char | char cName |
|
sz | C類型字符串 | char * | char * szTemp[10] |
cs | CString字符串 | CString | CString csStr() |
b | 布爾類型變量 | bool | bool bFlag |
f | 浮點(diǎn)數(shù)據(jù) | float | float fNumber |
p | 指針變量和迭代器 | pointer | Log* pLog |
pfn | 指向函數(shù)的指針變量禾酱,函數(shù)對象指針 | pointer of function | 待定 |
g | 數(shù)組 | grid/Array | int gNumList[] |
i | 類的實(shí)例 | instance | Log iLog |
h | 句柄類型 | HANDLE | m_hWnd |
- | - | - | - |
str | 字符串 | std::string | std::string strName |
v | vector | std::vector | std::vector vTestItem |
類型前綴可以使用組合方式,如
vnNumList="vector int NumList"
枚舉類型
枚舉類型全部使用大寫字母,并且最后一個(gè)字母為E
//LIMIT_CHECK_TYPE_E 上下限類型颤陶,E代表枚舉
enum LIMIT_CHECK_TYPE_E
{
LIMIT_NONE,
LIMIT_LOWER_ONLY,
LIMIT_UPPER_ONLY,
LIMIT_BOTH,
};
結(jié)構(gòu)體
結(jié)構(gòu)體中颗管,變量最后一個(gè)字母使用_T表示
CAMERA_BLEMISH_CONFIG_T{
}
類命名
屬性命名
參考作用域前綴
部分
前綴 | 說明 |
---|---|
無 | 局部變量 |
m_ | 類的成員 |
方法命名
范圍不同,方法前增加的下劃線長度不同滓走,這里是以前不曾注意到的點(diǎn)
類別 | 描述 |
---|---|
函數(shù)命名 | 函數(shù)的名稱由一個(gè)或者多個(gè)單詞組成垦江,每個(gè)單詞首字母大寫 |
保護(hù)成員(Protected) | 保護(hù)成員函數(shù)應(yīng)當(dāng)加上一個(gè)“_"以便區(qū)別,如_SetValue() |
私有成員 | 私有成員添加兩個(gè)下劃線,如__GetValue() |
虛函數(shù) | 虛函數(shù)習(xí)慣以“Do”開頭搅方,_DoEncryption |
回調(diào)和事件處理函數(shù) | 回調(diào)和事件處理函數(shù)以O(shè)n開頭比吭,如__OnTimer() |
常量命名
常量命名由類型前綴+全部大寫組成,單詞通過下劃線(_)來進(jìn)行分隔
nMAX_BUFFER
,cMY_NAME
注釋
完整注釋
/*************************************************
Function: PortUI::OnInitDlg()
Description: 用于初始化界面的List.
Parameter: Dlg的引用 HWND MainWnd姨涡。
Time: 20170831
Author: LiangYaoting
*************************************************/
簡短注釋
//20170831 LYT 初始化界面