« 朱德庸令人省思的短篇漫畫-跳樓 | 回到主頁面 | Business Trip to Fremont CA »

August 12, 2004

變數命名法--匈牙利命名法


將此網頁加入【百度收藏】... 加入此網頁到【del.icio.us 書籤】 technorati

前幾天去誠品,逛呀逛著,開始看一本關於遊戲設計概念的書『大師談遊戲架構與設計理論 (Game Architecture and Design)』。這本書其實真不賴,不僅有遊戲計概念的書,並且有教導專案管理、程式碼的撰寫風格等等。這些部分其實在市面上的書是很少看的到的。

不過在裡面看到一個程式命名的技巧匈牙利命名法(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 接口实现的类名
參考資料:
  1. http://member.netease.com/~element/diary0101.html
  2. http://www.longen.org/E-K/detaile~k/Hungary.htm
  3. http://c2.com/cgi/wiki?CamelCase
  4. http://www.uml.org.cn/bzgf/bzgf5.htm


VC6相關問題

由 Evan 發表於 August 12, 2004 將此網頁加入【百度收藏】... 加入此網頁到【del.icio.us 書籤】 technorati
引用
本文的引用網址:


以下是前來引用的連結 '變數命名法--匈牙利命名法' 來自 Blog E
迴響

Camel-Naming Rule 跟 Hungarian Notation 是不一樣的東西喔...

由 Patrick 發表於 August 14, 2004 11:23 AM

是的 馬上更改
^________^

等等買的書過來看一下
有更新的資料會更新

Evan 發表於 August 14, 2004 12:15 PM
發表迴響









記住我的資訊?




(請輸入以下的驗證碼)