
前言
在初學(xué)C++的時候,一定要養(yǎng)成良好的命名習(xí)慣才可以讓程序的可讀性大大提高,這里我整理和收集了一些有用的命名規(guī)則,以便自己 后續(xù)程序閱讀和分享。其中一些摘自網(wǎng)絡(luò),將比較常識性的東西去掉了,保留了自認(rèn)為有價值的一些內(nèi)容。
變量命名
變量或者函數(shù)的命名通常有一些準(zhǔn)則可供參考,這里僅僅羅列了比較有用的一些:
| 準(zhǔn)則 | 描述 |
|---|---|
| 最小長度原則 | 語意明確情況下,應(yīng)當(dāng)縮短命名長度 |
| 不重命名 | 在不同作用域中盡量不適用相同的命名 |
| 避免出現(xiàn)數(shù)字符號 | 避免名字中出現(xiàn)數(shù)字符號 |
、
變量名稱由作用域+類型前綴+一個或者多個單詞組成
作用域前綴
作用域前綴的常見寫法如下:
| 前綴 | 說明 |
|---|---|
| 無 | 局部變量 |
| 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 | 浮點數(shù)據(jù) | float | float fNumber |
| p | 指針變量和迭代器 | pointer | Log* pLog |
| pfn | 指向函數(shù)的指針變量,函數(shù)對象指針 | pointer of function | 待定 |
| g | 數(shù)組 | grid/Array | int gNumList[] |
| i | 類的實例 | instance | Log iLog |
| h | 句柄類型 | HANDLE | m_hWnd |
| - | - | - | - |
| str | 字符串 | std::string | std::string strName |
| v | vector | std::vector | std::vector vTestItem |
類型前綴可以使用組合方式,如
vnNumList="vector int NumList"
枚舉類型
枚舉類型全部使用大寫字母,并且最后一個字母為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)體中,變量最后一個字母使用_T表示
CAMERA_BLEMISH_CONFIG_T{
}
類命名
屬性命名
參考作用域前綴 部分
| 前綴 | 說明 |
|---|---|
| 無 | 局部變量 |
| m_ | 類的成員 |
方法命名
范圍不同,方法前增加的下劃線長度不同,這里是以前不曾注意到的點
| 類別 | 描述 |
|---|---|
| 函數(shù)命名 | 函數(shù)的名稱由一個或者多個單詞組成,每個單詞首字母大寫 |
| 保護(hù)成員(Protected) | 保護(hù)成員函數(shù)應(yīng)當(dāng)加上一個“_"以便區(qū)別,如_SetValue() |
| 私有成員 | 私有成員添加兩個下劃線,如__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 初始化界面