アカウント名:
パスワード:
C に記述標準を設けてバグの入りにくいコードを書けるようにという志で作られた MISRA C ですが、関数の末尾以外の return を禁止するという誰得ルールを筆頭に使い物にならない制約が多すぎます。役に立つところといえば、これをそのまま採用するところの技術力は信用できないという判断材料になることぐらい。
> 関数の末尾以外の return を禁止する
なぜ禁止なのかわからない人にコードは書かせたくないなあ
なんだろう?可読性がよくなる訳じゃないし。末尾最適化されやすくなる(かもしれない)くらいしか思い浮かばないなあ。
デバッグか何かで、ツールで関数末尾に処理を自動挿入するとかは?
人間は一度に少しの事しか覚えてられないので、この場合はこれで終わりということが明確に分かる、途中returnには意味があると思うけどなあ。
これを禁止する人は、例外がある言語でも例外は使えないんだろうか?
むしろ例外のない環境に過剰適応した結果「途中returnなんて解放漏れが発生する! 論外だ!」とか吹き上がっちゃってるんじゃね?
なるほど解放漏れかー。その発想はもう忘却の彼方だったなあ。
これはどうも、goto禁止令と同種の制約っぽいな。goto同様、途中returnも解読困難に記述することは可能だから、そういう手合いには使用を禁止した方が読めるソースになるって事かな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
MISRA C という失敗 (スコア:1)
C に記述標準を設けてバグの入りにくいコードを書けるようにという志で作られた MISRA C ですが、
関数の末尾以外の return を禁止するという誰得ルールを筆頭に使い物にならない制約が多すぎます。
役に立つところといえば、これをそのまま採用するところの技術力は信用できないという判断材料になることぐらい。
Re: (スコア:1, すばらしい洞察)
> 関数の末尾以外の return を禁止する
なぜ禁止なのかわからない人にコードは書かせたくないなあ
Re: (スコア:0)
なんだろう?可読性がよくなる訳じゃないし。
末尾最適化されやすくなる(かもしれない)くらいしか思い浮かばないなあ。
Re:MISRA C という失敗 (スコア:0)
デバッグか何かで、ツールで関数末尾に処理を自動挿入するとかは?
人間は一度に少しの事しか覚えてられないので、この場合はこれで終わりということが
明確に分かる、途中returnには意味があると思うけどなあ。
これを禁止する人は、例外がある言語でも例外は使えないんだろうか?
Re: (スコア:0)
むしろ例外のない環境に過剰適応した結果「途中returnなんて解放漏れが発生する! 論外だ!」とか吹き上がっちゃってるんじゃね?
Re: (スコア:0)
なるほど解放漏れかー。その発想はもう忘却の彼方だったなあ。
これはどうも、goto禁止令と同種の制約っぽいな。
goto同様、途中returnも解読困難に記述することは可能だから、
そういう手合いには使用を禁止した方が読めるソースになるって事かな。