變量命名規則
參考鏈接:http://www.cnblogs.com/onedime/archive/2012/11/21/2780149.html
必須遵守的規則
1.變量名只能是字母(A-Z,a-z)、數字(0-9)或下劃線。
2.第一個字母不能是數字,例如2Lerver這不是一個合法的C++變量。
3.不能是關鍵字,例如不能用struct這個單詞來命名一個變量。
4.區分大小寫,例如iA和ia是兩個不同的變量。
理論上,在遵守了上面幾條規則的前提下,所聲明的變量名稱都是合法的。比如下面的命名:
char xueshengming[20]; //學生名
char a; //命名一個字符,但變量名毫無意義,不方便閱讀和記憶
建議命名規則
一、用最短的字符表示最多的意義。
int iPosX; //Pos表示位置,X表示橫坐標 //通常個人喜歡加下劃線進行區分,如 Pos_X
二、使用變量前綴
在變量前帶上小寫前綴可以很直觀的看出變量的數據類型,而不必到變量的定義處去查看。
常用的數據類型推薦變量前綴:
(個人通常喜歡寫成 前綴_變量名,或 前綴(小寫)+變量名(大寫字母開頭))
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的前綴
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;
10.字節變量的前綴:by BYTE byInfo;
11.字變量的前綴
DWORD dwInfo; //雙字 WORD wInfo; //單字
12.字符指針的前綴
LPCTSTR ptszInfo; //ptsz表示前綴,t表示TCHAR類型 LPCSTR pszInfo; LPSTR pszInfo;
13.STL容器類型前綴 vector<int> vecValue;
說明:vec表示vector容器的前綴,為了簡化變量,變量體後面不再使用前綴 list<double> 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; HBRUSH hBr; HPEN hPen; HBITMAP hBmpBack;
17.windows顏色類型的前綴:
cr COLORREF crFront;
18.windows中DC(設備上下文)類型的前綴
CClientDC dcClient;
三、類的成員變量以m_開頭,後面為變量體,變量體依然要有前綴。
int m_iDepth;
四、定義一個變量,為了簡化,在不影響變量意義的情況下,可以僅僅使用前綴。 RECT rc;
五、全局變量一律以g_開頭,後面為變量體,變量體依然要有前綴。 int g_iNums;
六、定義結構體為了保證和C語言和C++的寫法兼容性,一律采用typedef語句。
typedef struct tagINFO_NODE {
int iData;
tagINFO_NODE *pNext; }T_INFO_NODE, *PT_INFO_NODE;
七、變量體如果是多個單詞,每個單詞的首字母大寫。
int iStudentAge;
八、在意義明確的情況下可以僅僅使用首字母命名變量可以縮短變量名。
int iID;
說明:僅使用首字母表示變量體的前提是保證變量的意義,比如變量iStudentAge如果聲明成:
int iSA; //這樣將失去意義,不可取
雖然這樣可以少碼一些代碼,很容易出現當時知道含義,後面來看不知道含義的情況。而且由於現在的編輯器大多有自動補全功能,不建議這麽做。
變量命名規則