首页 > 代码库 > 【转】C/C++变量命名规则

【转】C/C++变量命名规则

变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:

1、 变量名只能是字母(A-Za-z)和数字(0-9)或者下划线(_)组成。

2、 第一个字母必须是字母或者下划线开头。

3、 不能使用C++关键字来命名变量,以免冲突。

4、 变量名区分大小写。

 

变量命名规则:

一、             用最短字符表示最准确的意义。

二、             使用变量前缀。

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

 

6、  指针型前缀

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

 

三、             类的成员变量以m_开头,后面为变量,变量同时还要加前缀。

CString                 m_strName;    //m_开头+类型前缀+名称

 

四、             定义一个变量,为了简化,在不影响变量意义的情况下,可仅仅使用前缀。

RECT                    rc;

 

五、             全局变量一律以g_开头,后面为变量,变量同时还要加前缀。

int                     g_ID;                  //g

六、             定义结构体,保证CC++兼容,采用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;

 

来源:http://blog.sina.com.cn/s/blog_8a7012cf01017h9p.html