ハンガリアン記法
読み:ハンガリアンきほう
外語:Hungarian Notation
Cや、その流れを汲むプログラミングで用いる変数の命名方法の一つ。
当時のMicrosoftのプログラマー、チャールズ・シモニイによって発案された。
由来
元来、C言語は変数の各型のサイズが未定義で、しかも環境によって違う。これは今でも同じである。このため改修や移植の際には非常に問題が生じた。
そこで、変数の頭に変数のサイズを表わすdw(double word)などを付け、型とサイズを明確にしようとしたのが始まりである。その後、変数がらみのバグで最も多いのは変数の型を誤ることであるということから、intergerなど、変数の型名を変数名一般に付けるような記法が誕生したと考えられている。
そういった命名方法の一つがハンガリアン記法であるが、しかし明確な仕様があるわけではないので、単にハンガリアン記法といっても様々なローカルルールが存在する。
一般的な例
一般的な例として、次のようなものがある。
このような小文字のプリフィックス(接頭辞)をつけ、その後に大文字から変数名を書き始める(例: iLoopCounter、pReceiveBuffer)。
応用
さらに応用として、グローバル変数もバグの原因となりやすいので、これはg_から書きはじめることで他の変数と区別する(例: g_lIpAddress)。
同様に、C++では新たにメンバー変数という概念が増えたが、これはm_から書きはじめることで他の変数と区別する(例: m_iScreenWidth)、なども行なわれる。
是非
ちなみに、ハンガリアン記法はMicrosoftの考えたものだからとか、C++ではユーザーがタイプ定義可能なのにintなどのプリミティヴなタイプを区別するのは無意味でオブジェクト指向の障害になる、等の理由で否定する層もいる。
これは事実であり、確かにそのとおりである。
しかし、下手糞でまともに見られないプログラムを書く輩に限って、こういった記法を否定したがるのもまた事実である。
再検索