他人のソースのあら捜し

久々に他の社員のC言語のソースを見た。性格がねじくれている私はさっそくあら捜しをするのだった。

  • xxxxtempという役割不明のグローバル変数がたくさんある
  • 変数・関数の名前付けルールが明確でない
  • 変数・関数の名前の対応が取れていない(「dec」の反対は「add」ではなく「inc」)
  • ファイルスコープの変数にstaticを使ってない
  • 長さ決め打ちで配列を初期化している(例: char foo[4] = {0, 1, 2, 3};)
  • 決め打ちした配列の長さが正しくない(末尾のヌルを忘れた誤例:char foo[4] = "abcd";)
  • ほとんど同じ関数が複数ある
  • マクロ定数が大文字のみであったり、小文字まじりであったり統一されてない
  • インデントが崩れている箇所がある
  • 配列のゼロ埋めにmemsetではなくfor文を使っている(CPUによっては大きなロス)
  • 配列のコピーにmemmoveではなくfor文を使っている(CPUによっては大きなロス)
  • 関数に値を渡すのにグローバル変数を使っている(void hoge(void) の型の関数が多い)

必須ではないのもあるけど。こうしてみるとありがちな間違いもしくは不適切な書き方が多い。

処方箋:

Cプログラミング専門課程
藤原 博文
技術評論社 (1994/12)
売り上げランキング: 40383

Code Complete第2版〈上〉―完全なプログラミングを目指して
ティーブ マコネル Steve McConnell クイープ
日経BPソフトプレス (2005/03)
売り上げランキング: 5103