アカウント名:
パスワード:
int FuncA(int);int FuncB(int);int FuncC(int);...int (*Func[])(int) = {FuncA, FuncB, FuncC, ...};...rc = Func[State](Param);
なんてコードは、新入から「このコードは複雑で何をしてるか分からない。switchの方が分かり易くて簡単だ。」なんて言われます。256個のcaseが並んだswitchには驚かされますね。(関数と変数は異なるもので、関数の配列は考えられないといった思考のようです。)
どんなコードが「複雑なコード」に思えるかは人によって違うので、「複雑なコード=悪いコード」と固定することは出来ませんね。
# switchでは実行速度にばらつきが出て修正となりました。# この件では、私「複雑なコード=悪いコード」、新人「複雑なコード≠悪いコード」だったと。
># switchでは実行速度にばらつきが出て修正となりました。
実行速度にばらつきが出て困ることがあるのだろうか? 組込系だったら分からないこともないが
>実行速度にばらつきが出て困ることがあるのだろうか? 組込系だったら分からないこともないがやあ、例のカードは、それでクラックされたんだよ。strcmpをそのまま使っていたらしい。馬鹿だねぇ。#組込系だけど。
そういうことか。 そういう問題を回避するためと分かれば納得出来るコードだし、見た目はややこしいものの慣れてしまえば素直な記述に見えるだろ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
複雑なコードとは? (スコア:2)
int FuncA(int);
int FuncB(int);
int FuncC(int);
...
int (*Func[])(int) = {FuncA, FuncB, FuncC, ...};
...
rc = Func[State](Param);
なんてコードは、新入から「このコードは複雑で何をしてるか分からない。switchの方が分かり易くて簡単だ。」なんて言われます。
256個のcaseが並んだswitchには驚かされますね。(関数と変数は異なるもので、関数の配列は考えられないといった思考のようです。)
どんなコードが「複雑なコード」に思えるかは人によって違うので、「複雑なコード=悪いコード」と固定することは出来ませんね。
# switchでは実行速度にばらつきが出て修正となりました。
# この件では、私「複雑なコード=悪いコード」、新人「複雑なコード≠悪いコード」だったと。
Re: (スコア:0)
># switchでは実行速度にばらつきが出て修正となりました。
実行速度にばらつきが出て困ることがあるのだろうか? 組込系だったら分からないこともないが
Re: (スコア:0)
>実行速度にばらつきが出て困ることがあるのだろうか? 組込系だったら分からないこともないが
やあ、例のカードは、それでクラックされたんだよ。
strcmpをそのまま使っていたらしい。
馬鹿だねぇ。
#組込系だけど。
Re:複雑なコードとは? (スコア:0)
そういうことか。 そういう問題を回避するためと分かれば納得出来るコードだし、見た目はややこしいものの慣れてしまえば素直な記述に見えるだろ。