最高に笑えたコメント行 0x02at PROG
最高に笑えたコメント行 0x02 - 暇つぶし2ch767:仕様書無しさん
04/04/25 16:35
/*
防御プログラムとは少々異なるが、>>765のenumとswitchの関係みたいな
どっちかが変更されたら、そもそもプログラムが成立しなくなる様
一意性にこだわって書くスタイルというのもあるな。

例えば
enum Etype {E1, E2, EMAX };
typedef void(*func(void)) FUNC;
const FUNC ftable[EMAX] = { e1Func, e2Func ];

ftable[a]();


みたいな。
上ではftableは素の配列だが、java等ならEtypeに変更があれば範囲外参照で例外が飛ぶし、
C++なら定数配列のテンプレートでも使えば簡単に範囲外参照をチェックするようにできる。
Cでも最悪aを引数にした呼び出しマクロ等でチェックできるだろうし、何もしなくても、
いずれクラッシュという形で異常が検出される。

結局、問題点が事故を起こしてから判明するという意味では何の解決にもなっていないし
間の抜けた手には違いない。
その上、上の例の様な書き方はまだるっこしく、直感的でなく、可読性に劣る。

そうなると>>765みたいに警告で救ってもらおうというのは…DQNというより
横着者のやることなわけだが、プログラマにとって横着は美徳。
粘着を美徳と勘違いしてる奴が多いのは実に嘆かわしい事だが。
*/


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch