Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

匈牙利命名法(全)

Posted on 2010-05-03 11:53  analyzer  阅读(6572)  评论(2编辑  收藏  举报

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

我要啦免费统计