ハンガリー記法
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ハンガリー記法(ハンガリーきほう、Hungarian notation)あるいは ハンガリアン記法とは、プログラマがプログラムのソースコードを書く際に、変数名やクラス名などの識別子に特別な接頭文字、または接尾文字をつけることで、他の人がその識別子を見たときに、識別子の使用方法・データ型情報・スコープ範囲などを分かるようにするための命名法である。
C/C++のような型をコンパイル時にチェックする機構のある言語においては、わざわざ型を変数名に付加する必要はないという意見もある(使用法を間違えればコンパイラが警告・エラーを生成するため)。
なお、ハンガリー記法のハンガリーは考案者がハンガリー出身のプログラマーチャールズ・シモニー(Charles Simonyi)であることに由来する。
本来、シモニーの考案したハンガリー記法とは、変数の意味や使用目的から接頭辞を決定することであり、型では区別できない情報を変数名に付与することで、紛らわしい変数の意味を明白にし混同をさけるためのものであった。たとえば、論理座標とデバイス座標、X軸とY軸、ドルと円などで、これらは単純に型による安全性に頼ることはできない。
マイクロソフトのアプリケーション開発グループで開発されたこの記法は Excel や Word などの開発で成功を収めたため、Windows 開発グループでも採用された。その際、シモニーの論文中の "type" がデータ型のことであると誤って解釈され、変数名にデータ型を表す接頭語や接尾語をつける記法だと誤解された。シモニーの意図していた記法をアプリケーションハンガリアン、誤解に基づく記法をシステムハンガリアンと呼ぶ。システムハンガリアンは現在批判されることが多く、.NET Framework では使われていない。
[編集] ハンガリー記法の例
文字 | 使用位置 | 意味 | 使用例 |
---|---|---|---|
b または f | 接頭 | 論理型 | bDutyFlag |
by | 接頭 | バイナリ型 | byCount |
n または i | 接頭 | integerなどの整数型 | nPower |
dw | 接頭 | double word型 | dwSize |
fp または f | 接頭 | 単精度浮動小数点型 | fpPrice |
db または d | 接頭 | 倍精度浮動小数点型 | dPi |
p または lp | 接頭 | ポインタ型 | lpDirectSound |
s | 接頭 | 文字列型 | sPlayerName |
sz | 接頭 | ゼロ終端文字列型 | szFileName |
fn | 接頭 | 関数ポインタ型 | fnCallback |
hwnd または h | 接頭 | ウィンドウハンドル型(Windowsのみ) | hMainWindow |
m_ | 接頭 | クラスのメンバ変数 | m_nx |
_ | 接尾 | クラスのメンバ変数 | ny_ |
C | 接頭 | クラス | CHoge |
tag | 接頭 | 構造体 | tagRECT |
なお、これらは組み合わせて使われることもある。例えば「lpsz: ゼロ終端文字列へのポインタ」などといった具合である。
カテゴリ: 改名提案 | スタブ | プログラミング | プログラミング言語の構文