C/C++变量命名规则,个人习惯总结
变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:
1、 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。
2、 第一个字母必须是字母或者下划线开头。
3、 不能使用C++关键字来命名变量,以免冲突。
4、 变量名区分大小写。
变量命名规则:
一、 用最短字符表示最准确的意义。
二、 使用变量前缀。
1、 整型前缀
1 int nId; //int前缀:n 2 short sId; //short前缀:s 3 unsigned int unId // unsigned int 前缀:un 4 long lId; //long前缀:l
2、 浮点型前缀
1 float fValue; //float前缀:f 2 double dValue; //double前缀:d
3、 字符型前缀
1 char chChar; //char前缀:ch
4、 字符串前缀
1 char szPath; //char字符串前缀:sz 2 string strPath; //string字符串前缀:str 3 CString strPath; //MFC CString类前缀:str
5、 布尔型前缀
1 bool bIsOK; //bool类型前缀:b 2 BOOL bIsOK; //MFC BOOL前缀:b
6、 指针型前缀
1 char * pPath; //指针前缀:p
7、 数组前缀
1 int arrnNum; //数组前缀:arr 2 CString arrstrName; //数组前缀+类型前缀+名称
8、 结构体前缀
1 STUDENT tXiaoZhang; //结构体前缀:t
9、 枚举前缀
1 enum emWeek; //枚举前缀:em
10、 字节的前缀
1 BYTE byIP; //字节前缀:by
11、 字的前缀
1 DWORD dwMsgID; //双字前缀:dw 2 WORD wMsgID; //单字前缀:w
12、 字符指针前缀
1 LPCTSTR ptszName; //TCHAR类型为ptsz 2 LPCSTR pszName; //pcsz 3 LPSTR pszName; //psz
13、 STL容器前缀
1 vector vecValue; //vector容器前缀:vec
14、 RECT矩形结构前缀
1 RECT rcChild; //rc 2 CRECT rcChild/ //rc
15、 句柄前缀
1 HWND hWndDlg; //h 2 HBRUSH hBr; //h 3 HPEN hPen; //h 4 HBITMAP hBmpBack; //h
16、 Windows颜色前缀
1 COLORREF crFont; //cr
17、 Windows DC前缀
1 CDC dcClient; //dc
三、 类的成员变量以m_开头,后面为变量,变量同时还要加前缀。
1 CString m_strName; //m_开头+类型前缀+名称
四、 定义一个变量,为了简化,在不影响变量意义的情况下,可仅仅使用前缀。
1 RECT rc;
五、 全局变量一律以g_开头,后面为变量,变量同时还要加前缀。
1 int g_ID; //g
六、 定义结构体,保证C和C++兼容,采用typedef语句,并且结构体类型全部大写,以T_开头,指针形式以PT_开头。
1 typedef struct tagTSTUDENT 2 { 3 int nId; 4 CString strName; 5 }STUDENT,*PSTUDENT; 6 STUDENT tXiaoZhang; //完整定义结构体
七、 变量由多个单词组成,则每个单词的首个字母大写。
1 int nStudentID; 2 CString strStudentName;
八、 定义一个类以C或者T做为类名前缀。
1 class CMyListCtrl; 2 class TMyListCtrl;
九、 MFC控件绑定值类别或者控件类类别,需要以m_开头并且加前缀。
1 CEdit m_EDT_strValue; //Edit绑定控件类别 2 CListBox m_LB_nName; //ListBox 3 CListCtrl m_LC_Name; //ListCtrl; 4 CComboBox m_CB_Name; /ComboBox
十、 控件ID尽量简化并表明控件类型和意义。
1 Button IDC_BNT_NAME; 2 Edit IDC_EDT_NAME; 3 ListBox IDC_LB_NAME; 4 ListCtrl IDC_LC_NAME; 5 ComboBox IDC_CB_NAME;