:: glossary ::
| 読み方 | ハンガリアンきほう |
| 英語 | hungarian notation |
変数の名前に型などの情報を縮めて付加する方法。
「ハンガリー記法」や「ハンガリアン命名規約」と呼ばれることもあります。
マイクロソフト社のチャールズ・シモニー氏が考案。
シモニー氏の出身地がハンガリーであるところから名づけられました。
ハンガリアン記法は、基本的に「一つ以上のプリフィックス(接頭辞)」と「限定子」の2つで構成されます。
プリフィックスは、命名する変数の型や付加情報を表します。
変数の型を表すプリフィックスは、次のとおりです。
| プリフィックス | 型 |
|---|---|
| b | BOOL, boolean |
| by | BYTE, unsigned char |
| c, ch | char |
| d | double |
| dw | DWORD, unsigned long |
| f | float |
| i, n | int |
| l | long |
| s, sh | short |
| u | unsigned |
| uc, uch | unsigned char |
| ui | unsigned int |
| ul | unsigned long |
| us, ush | unsigned short |
| w | WORD, unsigned int |
変数の付加情報を表すプリフィックスは、次のとおりです。
| プリフィックス | 付加情報 |
|---|---|
| a | 配列 array |
| c | 個数 count |
| d | 同じ型の変数における値の差 difference |
| e | 配列の要素 element |
| f | フラグ flag |
| g_ | グローバル変数 global |
| h | ハンドル handle |
| i | 配列のインデックス index |
| m_ | メンバ変数 member |
| p | ポインタ pointer |
| pfn |
関数へのポインタ pointer - function |
| psz |
NULL文字で終わる文字列へのポインタ pointer - string terminated by zero |
| sz |
NULL文字で終わる文字列 string terminated by zero |
プリフィックスは小文字で記述します。
通常は、変数の型と付加情報を表すプリフィックスを組み合わせて使います。
限定子は、一つ以上の単語を使って変数の意味を表します。
それぞれの単語の先頭を大文字にして、それに続く文字を小文字で記述します。
プリフィックスと組み合わせると、次のようになります。
nLength … 長さ alElapsedTime … 経過時間の配列 szFileName … ファイル名 pszFileName … ファイル名へのポインタ lpszFileName … ファイル名へのロングポインタ hMenu … メニューのハンドル g_szPageTitle … ページタイトル / グローバル変数 m_nWeight … 重さ / メンバ変数
独自に記述できる限定子に加えて、標準の限定子が用意されています。
| 標準の限定子 | 意味 |
|---|---|
| First | 配列の最初の要素 |
| Last | 配列の最後の要素 |
| Lim | 配列の上限 |
なお、オブジェクト指向において、ハンガリアン記法は推奨されていません。
理由は次のとおりです。
バグの原因になることもあるため、現在ではすでに使われなくなっています。
C C++ NULL 文字 インデックス オブジェクト指向 関数 クラス
グローバル変数 配列 バグ ファイル 変数 ポインタ メンバ変数
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com