C++编程中,变量命名的一些通用规则

参考了很多人的blog

 

终于整理出下面的东西

 

常用数值类型的变量名前缀
a       Array                                 数组
b       BOOL (int)                            布尔(整数)
by      Unsigned Char (Byte)                  无符号字符(字节)
c       Char                                  字符(字节)
cb      Count of bytes                        字节数
cr      Color reference value                 颜色(参考)值
cx      Count of x (Short)                    x的集合(短整数)
dw      DWORD (unsigned long)                 双字(无符号长整数)
f       Flags (usually multiple bit values)   标志(一般是有多位的数值)
fn      Function                              函数
g_      global                                全局的
h       Handle                                句柄
i       Integer                               整数
l       Long                                  长整数
lp      Long pointer                          长指针
m_      Data member of a class                一个类的数据成员
n       Short int                             短整数
p       Pointer                               指针
s       String                                字符串
sz      Zero terminated String                以0结尾的字符串
tm      Text metric                           文本规则
u       Unsigned int                          无符号整数
ul      Unsigned long (ULONG)                 无符号长整数
w       WORD (unsigned short)                 无符号短整数
x,y     x, y coordinates (short)              坐标值/短整数
v       void                                  空

有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。

前缀          类型               例子
g_          全局变量           g_Servers
C          类或者结构体        CDocument,CPrintInfo
m_          成员变量           m_pDoc,m_nCustomers
l_          局部变量           很少用

VC常用前缀列表:

前缀          类型          描述                             例子
ch            char         8位字符                          chGrade
ch            TCHAR        16位UNICODE类型字符              chName
b             BOOL         布尔变量                         bEnabled
n             int          整型(其大小由操作系统决定)     nLength
n             UINT         无符号整型(由操作系统决定)     nLength
w             WORD         16位无符号整型                   wPos
l             LONG         32位有符号整型                   lOffset
dw            DWORD        32位无符号整型                   dwRange
p             *            内存模块指针,指针变量           pDoc
lp            FAR*         长指针                           lpDoc
lpsz          LPSTR        32位字符串指针                   lpszName
lpsz          LPCSTR       32位常量字符串指针               lpszName
lpsz          LPCTSTR      32位UNICODE类型常量指针          lpszName
h             handle       Windows对象句柄                  hWnd
lpfn (*fn)()  回调函数指针 回调函数指针                     lpfnAbort


Windows对象名称缩写:

Windows对象     例子变量     MFC类     例子对象
HWND            hWnd;        CWnd*       pWnd;
HDLG            hDlg;        CDialog*    pDlg;
HDC             hDC;         CDC*        pDC;
HGDIOBJ         hGdiObj;     CGdiObject* pGdiObj;
HPEN            hPen;        CPen*       pPen;
HBRUSH          hBrush;      CBrush*     pBrush;
HFONT           hFont;       CFont*      pFont;
HBITMAP         hBitmap;     CBitmap*    pBitmap;
HPALETTE        hPalette;    CPalette*   pPalette;
HRGN            hRgn;        CRgn*       pRgn;
HMENU           hMenu;       CMenu*      pMenu;
HWND            hCtl;        CStatic*    pStatic;
HWND            hCtl;        CButton*    pBtn;
HWND            hCtl;        CEdit*      pEdit;
HWND            hCtl;        CListBox*   pListBox;
HWND            hCtl;        CComboBox*  pComboBox;

 

VC常用宏定义命名列表:

前缀            符号类型                      符号例子             范围
IDR_            标识多个资源共享的类型      IDR_MAINFRAME          1~0x6FFF
IDD_            对话框资源(Dialog)        IDD_SPELL_CHECK        1~ 0x6FFF
HIDD_           基于对话框的上下文帮助      HIDD_SPELL_CHECK       0x20001~0x26FF
IDB_            位图资源(Bitmap)          IDB_COMPANY_LOGO       1~0x6FFF
IDC_            光标资源(Cursor)          IDC_PENCIL             1~0x6FFF
IDI_            图标资源(Icon)            IDI_NOTEPAD            1~0x6FFF
ID_、IDM_       工具栏或菜单栏的命令项      ID_TOOLS_SPELLING      0x8000~0xDFFF
HID_            命令上下文帮助              HID_TOOLS_SPELLING     0x18000~0x1DFFF
IDP_            消息框提示文字资源          IDP_INVALID_PARTNO     8~0xDFFF
HIDP_           消息框上下文帮助            HIDP_INVALID_PARTNO    0x30008~0x3DFFF
IDS_            字符串资源(String)        IDS_COPYRIGHT          1~0x7FFF
IDC_            对话框内的控制资源          IDC_RECALC             8~0xDFFF


Microsoft MFC宏命名规范

名称           类型
_AFXDLL     唯一的动态连接库(Dynamic Link Library,DLL)版本
_ALPHA      仅编译DEC Alpha处理器
_DEBUG      包括诊断的调试版本
_MBCS       编译多字节字符集
_UNICODE    在一个应用程序中打开Unicode
AFXAPI      MFC提供的函数
CALLBACK    通过指针回调的函数


库标识符命名法

标识符   值和含义
u        ANSI(N)或Unicode(U)
d        调试或发行:D = 调试;忽略标识符为发行


静态库版本命名规范

库              描述
NAFXCWD.LIB     调试版本:MFC静态连接库
NAFXCW.LIB      发行版本:MFC静态连接库
UAFXCWD.LIB     调试版本:具有Unicode支持的MFC静态连接库
UAFXCW.LIB      发行版本:具有Unicode支持的MFC静态连接库

 

动态连接库命名规范

名称        类型
_AFXDLL     唯一的动态连接库(DLL)版本
WINAPI      Windows所提供的函数


Windows.h中新的命名规范

类型      定义描述
WINAPI    使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型
CALLBACK  使用在应用程序回调程序,如窗口和对话框过程中的FAR PASCAL的位置
LPCSTR    与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*)
UINT      可移植的无符号整型类型,其大小由主机环境决定(对于Windows NT和Windows 9x为32位);它是unsigned int的同义词
LRESULT   窗口程序返回值的类型
LPARAM    声明lParam所使用的类型,lParam是窗口程序的第四个参数
WPARAM    声明wParam所使用的类型,wParam是窗口程序的第三个参数
LPVOID    一般指针类型,与(void *)相同,可以用来代替LPSTR


MSDN中给出了一段遵守代码风格和匈牙利命名法的代码参考如下:

1   #include “sy.h”
2   extern int *rgwDic;
3   extern int bsyMac;
4   struct SY *PsySz(char sz[])
6   {
7       char *pch;
8       int cch;
9       struct SY *psy, *PsyCreate();
10     int *pbsy;
11     int cwSz;
12     unsigned wHash=0;
13     pch=sz;
14     while (*pch!=0)
15          wHash=wHash<>11+*pch++;
16     cch=pch-sz;
17     pbsy=&rgbsyHash[(wHash&077777)%cwHash];
18     for (; *pbsy!=0; pbsy = &psy->bsyNext)
19     {
20       char *szSy;
21       szSy= (psy=(struct SY*)&rgwDic[*pbsy])->sz;
22       pch=sz;
23       while (*pch==*szSy++)
24       {
25         if (*pch++==0)
26            return (psy);
27       }
28     }
29     cwSz=0;
30     if (cch>=2)
31        cwSz=cch-2/sizeof(int)+1;
32     *pbsy=(int *)(psy=PsyCreate(cwSY+cwSz))-rgwDic;
33     Zero((int *)psy,cwSY);
34     bltbyte(sz, psy->sz, cch+1);
35     return(psy);
36 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值