变量命名规则

来源:互联网 发布:淘宝店铺怎样设置积分 编辑:程序博客网 时间:2024/05/22 06:30

    转自:http://blog.csdn.net/yszwn/article/details/4457973



  为了代码清晰易懂,通常变量名采用一些著名的命名规则,主要有Camel标记法,Pastal标记法和匈牙利标记法。

      Camel标记法采用首字母小写,接下来的单词都以大写字母开头的方法,如myName。

      Pastal标记法采用首字母大写,接下来的单词都以大写字母开头的方法,如MyName。

      匈牙利标记法是在Pastal标记法的基础上,变量名前面加上一个小写字母,或者小写字母的序列,以说明该变量的类型,如sMyName。

匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。还是那句话,并不是要求所有的读者都要去遵守,但是希望读者作为一个现代的软件开发人员都去遵守它。

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

VC常用前缀列表:

前缀    类型    描述例子
ch      char    8位字符 chGrade
ch      TCHAR   16位Unicode集字符 chName
b       BOOL    布尔变量 bEnable
n       int     整型 nLength
n       UINT    无符整型 nLength
w       WORD    16位无符号整型 wPos
l       Long    32位有符号整型 lOffset
dw      DWORD   32位无符号整型 dwRange
p       *       指针变量,内存模块指针(Ambient memory model point) pDoc
lp      Far*    长指针 lpDoc
lpsz    LPSTR   32位字符串指针 lpszName
lpsz    LPCSTR 32位常量字符串指针 lpszName
lpsz    LPCTSTR 32位Unicode集常量指针 lpszName
h       handle Windows对象句柄 hWnd
lpfn    (*fn)() 回调函数指针 Callback Far pointer to CALLBACK function lpfnAbort

匈牙利命名法

MFC、句柄、控件及结构的命名规范 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 hPaltte; CPalette* pPalette;
HRGN hRgn;        CRgn* pRgn;
HMENU hMenu;      CMenu* pMenu;
HWND hCtl;        CState* pState;
HWND hCtl;        CButton* pButton;
HWND hCtl;        CEdit* pEdit;
HWND hCtl;        CListBox* pListBox;
HWND hCtl;        CComboBox* pComboBox;
HWND hCtl;        CScrollBar* pScrollBar;
HSZ hszStr;      CString pStr;
POINT pt;         CPoint pt;
SIZE size;        CSize size;
RECT rect;        CRect rect;


一般前缀命名规范

前缀          类型实例
C    类或结构 CDocument,CPrintInfo
m_   成员变量 m_pDoc,m_nCustomers


变量命名规范

前缀 类型 描述实例
ch    char 8位字符 chGrade
ch    TCHAR 如果_UNICODE定义,则为16位字符 chName
b     BOOL 布尔值 bEnable
n     int 整型(其大小依赖于操作系统) nLength
n     UINT 无符号值(其大小依赖于操作系统) nHeight
w     WORD 16位无符号值 wPos
l     LONG 32位有符号整型 lOffset
dw    DWORD 32位无符号整型 dwRange
p     * 指针 pDoc
lp    FAR* 远指针 lpszName
lpsz LPSTR 32位字符串指针 lpszName
lpsz LPCSTR 32位常量字符串指针 lpszName
lpsz LPCTSTR 如果_UNICODE定义,则为32位常量字符串指针 lpszName
h     handle Windows对象句柄 hWnd
lpfn callback 指向CALLBACK函数的远指针

前缀 符号类型 实例 范围

IDR_ 不同类型的多个资源共享标识 IDR_MAIINFRAME 1~0x6FFF
IDD_ 对话框资源 IDD_SPELL_CHECK 1~0x6FFF
HIDD_ 对话框资源的Help上下文 HIDD_SPELL_CHECK 0x20001~0x26FF
IDB_ 位图资源 IDB_COMPANY_LOGO 1~0x6FFF
IDC_ 光标资源 IDC_PENCIL 1~0x6FFF
IDI_ 图标资源 IDI_NOTEPAD 1~0x6FFF
ID_   来自菜单项或工具栏的命令 ID_TOOLS_SPELLING 0x8000~0xDFFF
HID_ 命令Help上下文 HID_TOOLS_SPELLING 0x18000~0x1DFFF
IDP_ 消息框提示 IDP_INVALID_PARTNO 8~0xDEEF
HIDP_ 消息框Help上下文 HIDP_INVALID_PARTNO 0x30008~0x3DEFF
IDS_ 串资源 IDS_COPYRIGHT 1~0x7EEF
IDC_ 对话框内的控件 IDC_RECALC 8~0xDEEF


应用程序符号命名规范

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


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 下蹲式厕所堵了怎么办 蹲的厕所堵住了怎么办 厕所通了又堵怎么办 蹲式厕所经常堵怎么办 厕所下水管堵了怎么办 厕所堵了水满了怎么办 拉屎把厕所堵了怎么办 厕所堵了不下水怎么办 坐厕所堵了怎么办妙招 火车上丢了东西怎么办 网购的东西丢了怎么办 在酒店丢了东西怎么办 我好懒不想工作怎么办 被宠物刺猬咬了怎么办 被老鼠咬了怎么办打针 手指被老鼠咬了怎么办 孕妇被老鼠咬了怎么办 耳朵里面一直嗡嗡响怎么办 把语言栏删了怎么办 乐视会员到期了怎么办 预提费用取消了怎么办 小学生上课注意力不集中怎么办 工商抽查到你了怎么办 拿到商调函后该怎么办 苹果7p掉水里了怎么办 苹果7屏幕进水了怎么办 苹果5s掉进水里怎么办 苹果5s无法开机怎么办 苹果手机充不了电怎么办 苹果5s掉了怎么办 苹果6手机掉水里了怎么办 苹果5s关机丢了怎么办 苹果5s发热严重怎么办 手机开不开机了怎么办 苹果6基带坏了怎么办 苹果7基带坏了怎么办 苹果刷机1错误怎么办 4s解锁密码忘了怎么办 4sid密码忘记了怎么办 苹果4忘记id密码怎么办 枣核吃到肚子里怎么办