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