1.變量名隻能是字母(A-Z,a-z)、數字(0-9)或下劃線。
2.第一個字母不能是數字,例如2Lerver這不是一個合法的C++變量。
3.不能是c++關鍵字,例如不能用class這個單詞來命名一個變量。
4.區分大小寫,例如iA和ia是兩個不同的變量。
理論上,在遵守了上面幾條規則的前提下,所聲明的變量名稱都是合法的。比如下面的命名:
char xueshengming[20]; //學生名
char a; //命名一個字元,但變量名毫無意義
這樣的變量命名盡管是合法的,但可讀性非常差。正規的軟體公司,對于變量命名往往都有自己的一個推薦規範。不同公司的規範又會有一些差别。當一個程式員從一個公司跳槽到另一個公司,甚至會出現不習慣新公司代碼規範的現象。
萬事萬物,要是有一個統一的規範,也許程式員這個行業會少一些煩惱。俗話說得好:沒有規矩,不成方圓。以下是筆者多年編碼得出的變量命名的心得體會,在此總結如下,并奢望有招一日能成為行業規範。
變量命名的宗旨:
一、用最短的字元表示最多的意義。
int iPosX; //Pos表示位置,X表示橫坐标 //個人比較喜歡用n做字首
二、使用變量字首
在變量前帶上小寫字首可以很直覺的看出變量的資料類型,而不必到變量的定義處去檢視。常用的資料類型推薦變量字首:
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的字首
1.變量名隻能是字母(A-Z,a-z)、數字(0-9)或下劃線。
2.第一個字母不能是數字,例如2Lerver這不是一個合法的C++變量。
3.不能是c++關鍵字,例如不能用class這個單詞來命名一個變量。
4.區分大小寫,例如iA和ia是兩個不同的變量。
理論上,在遵守了上面幾條規則的前提下,所聲明的變量名稱都是合法的。比如下面的命名:
char xueshengming[20]; //學生名
char a; //命名一個字元,但變量名毫無意義
這樣的變量命名盡管是合法的,但可讀性非常差。正規的軟體公司,對于變量命名往往都有自己的一個推薦規範。不同公司的規範又會有一些差别。當一個程式員從一個公司跳槽到另一個公司,甚至會出現不習慣新公司代碼規範的現象。
萬事萬物,要是有一個統一的規範,也許程式員這個行業會少一些煩惱。俗話說得好:沒有規矩,不成方圓。以下是筆者多年編碼得出的變量命名的心得體會,在此總結如下,并奢望有招一日能成為行業規範。
變量命名的宗旨:
一、用最短的字元表示最多的意義。
int iPosX; //Pos表示位置,X表示橫坐标 //個人比較喜歡用n做字首 二、使用變量字首
在變量前帶上小寫字首可以很直覺的看出變量的資料類型,而不必到變量的定義處去檢視。常用的資料類型推薦變量字首:
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的字首 //個人喜歡用a做字首
TCHAR tcChar //多位元組字元和Unicode字元相容類型的字首tc wchar_t wcChar //寬字元字首wc
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; //這樣将失去意義,不可取
九、定義一個類使用C作為類名的字首。 class CStudent { … };
引用:https://blog.csdn.net/u012314708/article/details/52130961