匈牙利命名法(全)
匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的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       布尔变量       bEnabled

n     int    整型(其大小由操作系统决定)       nLength

n     UINT       无符号整型(其大小由操作系统决定)       nLength

w    WORD       16位无符号整型    wPos

l      LONG       32位有符号整型    lOffset

dw   DWORD       32位无符号整型       dwRange

p     *       Ambient memory model pointer 内存模块指针,指针变量    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

Windows对象名称缩写:

Windows对象       例子变量       MFC类       例子对象

15:01 | 添加评论 | 固定链接 | 引用通告 (0) | 记录它
匈牙利命名法(Hungarian Notation)

编码风格约定的目的是为了编写出的代码清晰和一致。Win32 中采用的是“匈牙利命名法”,这已经成为在 Win32 编程中通用的编码惯例。它含有变量前缀符号,该符号给出了一个变量的建议类型。以下的前缀是共同的:

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 零结束字串 tm Text metric 公制文本 u Unsigned int 无符号整数 ul Unsigned long (ULONG) 无符号长整数 w WORD (unsigned short) 字 x,y x, y coordinates (short) x,y 坐标值
  这些约定可以相互结合,如:

pszMyString 指向一零结束字串的指针. m_pszMyString 一个类的指向一零结束字串的指针
  其他约定还有:

CMyClass 前缀 'C' 代表一 C++ 类名. COMyObjectClass 前缀 'CO' 代表一 COM 对象类名 CFMyClassFactory 前缀 'CF' 代表一 COM 类工厂名 IMyInterface 前缀 'I' 代表一 COM 接口的类名 CImpIMyInterface 前缀 'CImpI' 代表一 COM 接口实现

posted on 2011-10-14 21:35  cylee025  阅读(464)  评论(0编辑  收藏  举报