久々に他の社員の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) の型の関数が多い)
必須ではないのもあるけど。こうしてみるとありがちな間違いもしくは不適切な書き方が多い。
処方箋:
Code Complete第2版〈上〉―完全なプログラミングを目指してposted with amazlet on 08.01.08