Hungarian

 単なるハンガリアン記法のメモ書きです。きっちりまとめてるページが見つからなかったので。
 ハンガリアン記法(Hungarian Notation)はハンガリー出身のあるプログラマが用いた識別子の命名方法で、Microsoftが採用していることからWindowsのプログラミングに広く用いられています。 この記述方法には賛否両論(どちらかと言うと否定の方が声がでかい)ありますが、私自身はセンス悪いなぁと思いつつも、Windowsプログラミングについては、MFCとの統一性などを考え原則(笑)採用しています。逆にWindows以外ではまず使っていませんが...

プリフィックス意味備考
a 配列 charの配列には、代わりに'sz'を使う。
b 論理型 割り付ける型は問わない。
b BYTE 多くの場合、代わりに'by'が用いられる。
bit ビット フラグを意味する場合、代わりに'f'(フラグ)が使われる。
by BYTE 8ビット符合無し整数  
c カウンタ 割り付ける型は問わないが、符合無し整数に割り付けられることが多い。
c char 8ビット符合付き整数 文字を意味する場合、代わりに 'ch' が使われる。
ch char 特に文字を意味する。
d double 倍精度実数  
dw DWORD又はunsigned long int
32ビット符合無し整数
 
f フラグ 割り付ける型は問わないが、代入する値は0か1のみ。
f float 単精度実数 代わりに'r'が使われることもある。
fn 関数(へのポインタ) 通常'lpfn'として関数へのポインタを表す。
h HANDLE WinAPI
hwnd HWND WinAPI
i int 'n'とは厳密には区別されないことが多い。
id 識別子 割り付ける型は問わない。
k const...  
l LONG 32ビット符合つき整数 16ビット時代の名残でポインタ'p'のプリフィックスとしても使われる。
n short int 'i'とは厳密には区別されないことが多い。
off オフセット 割り付ける型は問わない。
pポインタ 通常他のプリフィックスの前につけて、それのポインタを意味する。
ptPOINT WinAPI
r float 単精度実数 稀に代わりに'f'が使われる。
r & 参照型  
rc RECT WinAPI
s構造体 Stringを意味するプリフィックスとしても使われる。
sshort... unsigned shortの場合、'us'よりも'w'が多く使われる。
str文字列 通常 Stringクラスの変数名に使われる。
sz ゼロで終端する文字列 一般に charの配列の変数名に使われる。
u unsigned... 多くの場合、代わりに by, w, dwが使われる。
v void 通常'lpv'としてvoidポインタを表す。
w WORD 16ビット符合無し整数 16ビット時代の名残で unsigned int (現在は32ビット) にも使用されていることがある。
g_グローバル変数  
m_メンバ変数  
st_スタティック変数  
tag_ 構造体名 通常typedefの中で用いられ、利用は全て大文字のtypedefされた名前を用いる。
C クラス名 使われない場合もある。
S 構造体名 使われない場合もある。
I インタフェースクラス名 COMで追加された。
X ネストクラス名 COMで追加された。
x ネストクラスのインスタンス COMで追加された。
変数名はこれらのプリフィックスの後に意味を示す単語を先頭だけ大文字にしたものを付けて作る(lpszUserNameなど)。但し、一時的な変数には全て小文字の短い名前を、型に関係なく使用することもある(i, n x, y など)。

Go Top