『Cプログラミング診断室』目次/
次(第7章 文字処理は得意 まとめ)
第7章 文字処理は得意
その他
その他にも、いろいろな問題が見られます。全プログラムから、変なコーディングの特徴を以下
に個条書にしますが、これらは誰もがよく犯す過ちです。
- (a) 関数が長い。
- (b) 定数値がマクロ定義もされず、プログラム全体にいっぱい書かれている。これでは、それぞれ
の数値が何を意味しているのか良く分からない。
- (c) ほとんど同じことを、繰り返し、繰り返し書いている。関数化、マクロ化を考えるべき。
- (d) forループを使いこなしていない。forループのループ制御変数(カウンタ)を使ったループテ
ストと、break文、continue文の使い方に問題が多い。
- (e) tempなどの一時的変数をやたらに作りたがる。
- (f) strcpy, strcatを組み合わせて文字列処理をしてしまう。sprintfを使えば簡単にできる。
- (g) if文が妥当な個所に、やたらと ? : 演算子を用いる。
- (h) デバッグのために入れたと思われるコメントの入れ方が危険である。コメントアウトによって
{,}の対応が崩れたため、}だけをコメントで囲んだりするものまである。
とくに(b)はプログラムの保守や改造のときに問題になります。(b)の多いプログラムは、見かけ
はどんなに美しくても、最低最悪です。
全体として、下手というより、C言語の一般的テクニックを身につけるために、人に聞いたり、
自分のプログラムを見てもらう努力が不足しているようです。そのくせ、けっこう頭は使っている
らしく、奇妙な工夫はいっぱいしています。自分で変な技法を考えるより、もうすでに誰かがもっ
と素晴らしい解決方法を見つけているものです。
前回までに紹介したプログラムは、下手ではあっても変な癖はあまりなく、たんにC言語に慣れ
ていないと思われる素直なものでした。たんなる初心者ですから、きちんと指導すれば着実に進歩
するのではと思われましたが、今回の人は、まず変な癖をなくす必要があります。一番たちが悪く、
上達には初心者以上に努力が必要でしょう。
Copyright1996 Hirofumi Fujiwara. No reproduction or republication
without written permission
『Cプログラミング診断室』目次/
次(第7章 文字処理は得意 まとめ)