decadence

個人のメモ帳

プログラミング作法

今更ながらプログラミング作法の勉強です
どこかできちんと一度はやるべきだと思ってたので今しかないと思い手をつけはじめました

  • 関数名の付け方など

キャメルケース - Wikipedia
関数名は能動的な動詞+名詞などにするとわかりやすい
bool型を返すなら意味にあうようにisOctal()など

  • 関数マクロ

出来るだけ使うべきでない
中で2回評価される時には注意が必要

#define ROUND_TO_INT(x) ((int)((x)+(((x)>0)?0.5:-0.5)))
…
size = ROUND_TO_INT(sqrt(dx*dx+dy*dy));

上記例の際には平行根の計算が2倍実行されプログラムが大きくなってしまう

#define square(x) (x)*(x)
…
1 / square(x) → 1 / (x) * (x) 

これはマクロ本体に括弧をつけなかったために本来とは異なる結果になってしまう一例

  • getsの注意

getsは読み込まれる入力の量を制限する手段がないためにセキュリティの問題を引き起こす

Cではenum中に定数を定義すべき
javaではfinalを用いる事で表せる
リテラルの整数ゼロを表すならば0.0と記すべき

  • コメント

関数やグローバルな値にはつけるべき


このシリーズも多分ブログに書く手間が面倒なので勝手に読み進めって終わります、はい。