検索

ホームページ  >  に質問  >  本文

c++ - goto的使用场景

PHP中文网PHP中文网2767日前673

全員に返信(5)返信します

  • PHP中文网

    PHP中文网2017-04-17 14:59:03

    ついに、この興味深い質問を目にしました。私の goto プロセスを共有するために特別にブログ投稿を書きました。
    Goto の使用方法

    返事
    0
  • PHPz

    PHPz2017-04-17 14:59:03

    影響が構造に与える可能性のあるダメージよりも大きい場合 (goto 自体は間違っていませんが、マンパワーは限られており、goto を追加すると余計なトラブルが発生することがほとんどです)
    私が入った goto です。私の個人的な研究での接触は、n レベルのループから飛び出すためにも使用されます。

    返事
    0
  • PHPz

    PHPz2017-04-17 14:59:03

    goto はできるだけ使用しないでください...コードは人が読むためのものであり、読み取りに影響を与えるコードは書かないでください...

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 14:59:03

    私が読んだソース コードの中で goto を好むのは OpenSSL です。OpenSSL は純粋な C で書かれており、多数の複雑なデータ構造が割り当てられているため、関数の終了時にクリーンアップする必要があります。エラーによってプロセスが中断された場合、 もクリーニングする必要があるため、関数の終了が 1 つだけであることを確認するために、goto を使用してクリーニング位置にジャンプします。
    C++ にはクリーンアップを実行できるクラス オブジェクトのデストラクターがあり、C++11 で追加されたスマート ポインターを使用して新しいものを自動的にリリースできるため、これは基本的に必要なくなりました。多くの言語では goto が保持されていますが、その使用は推奨されません。
    実際、C/C++ はこのメソッドを使用して goto を置き換えることができます。

    do{
        もし(...)
            壊す;
    while(0);
    cleanup();

    返事
    0
  • 阿神

    阿神2017-04-17 14:59:03

    C の場合は関数内で気軽に使用できますが、C++ の場合は問題を解決するための try catch やその他の解決策がありますので使用しないでください。

    返事
    0
  • キャンセル返事