プログラミングの禁じ手Web版 C言語編(InternetArchiveよりサルベージ)
はじめに
昔お世話になったC Magazineの「プログラミングの禁じ手Web版 C言語編」というサイトを、後輩に教えてあげようとしたら、C Magazineの休刊後にドメインが失効してしまったようで、見る事が出来ませんでした。
幸い、InternetArchive(http://www.archive.org/web/web.php)
に当時のデータがほぼ残っていたので、無許可ではありますがサルベージして転載させてもらいました。
「C MAGAZINE - プログラミングの禁じ手Web版 C言語編」
元のアドレスはこちら。
http://www.cmagazine.jp/src/kinjite/c/index.html
InternetArchive
http://web.archive.org/web/20070113222026/http://www.cmagazine.jp/src/kinjite/c/index.html
(PR)プログラミング作法
(PR)C言語ポインタ完全制覇 (標準プログラマーズライブラリ)
(PR)改訂新版 Cプログラミング診断室
ここから転載です。
プログラミングの禁じ手Web版について
本誌2000年4月号に掲載された「特集1 プログラミングの禁じ手 C言語編」よりWebサイト用に抜粋したものです。ソースコードとともに公開いたします。作者の真紀俊男様に感謝します。
プログラミングは,「なぜかうまく進めなくなる」,「だんだんと期待した通りに動かなくなる」など,とても「イヤ」な面があります。そうした現実に直面したときに本稿がお役に立てれば幸いです。
一覧
[コメントに関するパターン]
- コメントがない
- コメントに嘘がある
- コメントが意味不明
- コメントが英語
[過去をひきずるパターン]
- 関数プロトタイプ宣言をしない
- 構造体の直接代入を使わない
- 「void *」を使わない
[変数に関するパターン]
[分量に関するパターン]
- ひとつの関数の行数が多すぎる
- 共通部分をまとめない
- 「入れ子」のレベルが深すぎる
- 構造体のメンバの数が多い
- 構造体の入れ子のレベルが深い
- 1ファイル1関数主義にこだわる
[記述テクニックに関するパターン]
- インデントを付けない平坦なコーディング
- 数値を直接コードに埋める
- if(XXX == TRUE)
- 掛け算の*とポインタ,-と--を判別しにくいようにわざと並べて記述する
- float,double型の値と数値との比較を==のみで行う
- 無節操なgotoの使用
- break,continueの悪用
- キャストの悪用
- わかりにくい変数名や関数名を使う
[直接コーディングに関しないパターン]
- warningを無視する
- stdio.hと同じディレクトリにプライベートヘッダを置く
- 構造体のパッキングを無視する
- エンディアンの存在を無視する
- ポインタをlong型変数で保持できると決めつける
- 巨大な領域を静的に確保する
プログラミングの禁じ手Web版 C言語編 - 直接コーディングに関しないパターン(サルベージ版) - Akio’s Log