c++ - goto的使用场景
PHP中文网
PHP中文网 2017-04-17 14:57:03
0
5
700
PHP中文网
PHP中文网

认证0级讲师

全員に返信(5)
洪涛

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

いいねを押す +0
PHPzhong

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

いいねを押す +0
PHPzhong

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

いいねを押す +0
大家讲道理

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

do{
    もし(...)
        壊す;
while(0);
cleanup();
いいねを押す +0
阿神

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート