読者です 読者をやめる 読者になる 読者になる

明日への断片

ゲーム制作やプログラミング関する記事を中心に更新していこうと思います。

27欠片目:ハンガリアン記法で変数宣言

 こんにちは。本日、咳がうまくできずに息が詰まり、割と身の危険を感じたvoidです。
まだちょっとのどが痛いです...

ハンガリアンて何ガリアン?

 ハンガリアン記法って何ぞ?(この流れ何度目だ)
ハンガーみたいなエイリアンでしょうか?いいえ、違います。

プログラミングで、変数名やクラス名などをを自分で決めるときに、一定のパターンを用いることで、その変数あるいはクラス名を見ただけで、型やスコープを分かりやすくするという書き方です。

因みに、考案者の方がハンガリー出身だったことからハンガリアン記法なのだそうです。

どういう書き方をするのか

基本的には、変数の頭に、決まった文字を付けます。
例えば、グローバル変数には『g_』と付けます。

時間を管理する変数を、グローバルで宣言する場合、

int g_time;   // 時間を管理する変数

のようにします。
すると、このプログラムを第三者が見て、g_timeが使われてる処理を見つけた場合、これはグローバル変数だということが一発で分かります。

逆に言うと、グローバル変数でない変数にg_を付けてしまうと、大変混乱を招くでしょう。

どんなものがあるか

 『ハンガリアン記法』で調べれば一覧のようなものはいくらでも出てくるので、普段使っているものや、使うと便利だと思ったものを紹介したいと思います。

頭に付ける文字 意味
m_ クラスのメンバ変数 m_cnt
p ポインタ型 pScene
s 文字列型 sName

この辺りは、割と良く使うかなぁと思います。

自分は最近までポインタ型を『p_』で書いていたので、ポインタ型のメンバ変数の場合に、見にくいなぁと思いながらも『m_p_scene』みたいに使っていました。最近では、『m_pScene』と書くようにしています。こちらの方がポインタ型メンバ変数であることが分かりやすいと思います。

好き嫌いはあるみたい

 プログラムの書き方は基本的に自由なので、「この書き方は嫌い!」という人もいるようです。
ですが、変数を見ただけで、型の情報やスコープを知れるというメリットが存在するので、知っていて損はないと思いました。

本日は以上!ではまた~