gotoの使用は、ひどいプログラミング手法です。 コアコードで使用することにはいくつかの利点があるかもしれませんが(私には何も見えません)、神のために例では使用しないでください。
私の注意を引いたファイルはRIOT / blob / master / examples / gcoap / gcoap_cli.cで、139行目にgoto statememtがあり、ラベルの最後にあるコードに置き換えることができます(2行のみ)。
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を使用すると、「有害と見なされます」