Riot: gotoの使用を避けてください

作成日 2017年07月06日  ·  6コメント  ·  ソース: RIOT-OS/RIOT

gotoの使用は、ひどいプログラミング手法です。 コアコードで使用することにはいくつかの利点があるかもしれませんが(私には何も見えません)、神のために例では使用しないでください。

私の注意を引いたファイルはRIOT / blob / master / examples / gcoap / gcoap_cli.cで、139行目にgoto statememtがあり、ラベルの最後にあるコードに置き換えることができます(2行のみ)。

contested minor cleanup

全てのコメント6件

gcoapの例では、あなたは確かに正しいです。 一方、これが(組み込みの)IoTオペレーティングシステムであることを考えると、RIOT全体で約30(何か)のgotoの使用法があり、その数はかなり少ないです。

したがって、gcoapの例を修正するPRを自由に提供してください。それ以外の場合、これは問題とは見なされません(少なくとも今のところ)。

gotoの使用は、ひどいプログラミング手法です。

それは議論の余地があります。 Cでのエラー処理にgotoを使用すると、多くの場合、より読みやすく、エラーが発生しにくいコードになるため、多くの人がgotoを使用することをお勧めします。

gcoap_cli.cは、139行目にgoto statememtがあり、これは、ラベルend:(2行のみ)の下のコードに簡単に置き換えることができます。

つまり、printf呼び出しを複製しますか?

つまり、printf呼び出しを複製しますか?

読みやすさに影響を与えることなく、 goto $を避けて$ if .. else if ... elseを使用してコードを簡単に作り直すことができると思います。これは、 gotoが使用されるすべての場合に可能というわけではありません。

つまり、printf呼び出しを複製しますか?
コードは...を使用して簡単に作り直すことができると思います。

もちろん。 2行をコピーするだけではカットされないことを指摘したいと思います。

コードの行を減らすことではありません。 それは読みやすさと良いコード慣行についてです。 if ... else ....の代わりにgotoを使用すると、「有害と見なされます」

このページは役に立ちましたか?
0 / 5 - 0 評価