2

中断と継続が一般的に有害であると見なされるべきかどうかについて、多くの議論があったことを私は知っています(結論としては、多かれ少なかれ、それによって異なります。場合によっては、明確さと読みやすさが向上しますが、そうでない場合もあります) )。

新しいプロジェクトが開発を開始し、静的アナライザーによる実行を含む夜間ビルドの計画があるとします。読みやすさを少し犠牲にし、過度のインデントを必要とする場合でも、 continueandの使用を避ける (または強く思いとどまらせる) プロジェクトのコーディング ガイドラインの一部にする必要がありますか? breakこれが C コードにどのように適用されるかに最も興味があります。

基本的に、これらの制御演算子を使用すると、コードの静的分析が大幅に複雑になり、追加の偽陰性が発生する可能性があります。それ以外の場合、break または continue が使用されていない場合に潜在的な障害が登録されますか?

(もちろん、任意のプログラムの正しさを証明する完全な静的解析は決定的な命題なので、理論的な不可能性についてではなく、これに関する実際の経験についての回答を保持してください)

前もって感謝します!

4

1 に答える 1

2

私の即時の反応は、回避するためにジャンプしなければならないフープであり、breakおそらくcontinueコード全体を傷つけ、静的分析 (またはその他の多くのもの) をかなり困難にするというものです。

ただし、扱っているコードの正確な種類によって少し異なります。たとえば、実際にはswitchステートメントとして実装するのが最適な何かがある場合、禁止するbreakと本質的にネストされたif/を使用する必要elseがあり、コードを正しく分析するのがはるかに難しくなり、状況によっては次のようになります。出力コードにも悪影響を与える可能性が非常に高くなります。

于 2012-05-17T15:23:01.307 に答える