答えて
未定義の動作を構成するものは、C++標準で規定されています。
定義されていない動作を示すコードをコンパイラが実行するときに生成されるコードは、定義上何でもかまいません。これは、コンパイラライターに最適化のための余裕を与えることです。
未定義の動作は、プログラムが何かを行うことができることを意味します。クラッシュや例外のスロー、メモリの特定領域への書き込みを保証するものではありません。ご存じのように、ファイルシステム全体を削除してからごみを取り出すことができます。これはC++標準でも問題ありません。
未定義の動作から離れてください。
私はそれが最適化のための余裕とは関係ないと確信しています。 –
おそらく、最適化は正しい言葉ではありませんでした。これは通常、標準的な動作を定義することで、すべてのアーキテクチャでサポートするのが困難または非効率になる場合に使用されます。したがって、開発者がより簡単にできるようにするには、指定されたアーキテクチャーにとって最も簡単で効率的なものを実行できるようにするだけです。何度も何もしないで、プログラムを矛盾した状態にしておくことが多いのです。 –
未定義の動作はC++のコンパイラによって異なりますか?
はい。それは次のように主張することができ
:
まあ定義された動作は、標準に準拠しており、同様にうまくすべて コンパイラによってサポートされています。
したがって、
未定義の動作が標準に準拠していないとコンパイラは、彼らがやりたいこと自由に です!未定義の動作について
、
C++標準のセクション1.3.24状態:
許容未定義の動作は予期しない結果と完全に状況を無視してから、中の翻訳またはプログラム実行中に動作の範囲(診断メッセージの発行の有無にかかわらず)環境の特徴を文書化した方法、(診断メッセージを発行して)翻訳または実行を終了することなどが含まれる。
はい、はい、コンパイラは、未定義の動作が発生したときに任意の動作を自由に表示できます。
未定義は実際には未定義を意味します。つまり、何かが起こる可能性があります。
コンパイラに依存できますか?はい。
すべてのコンパイラは同じことができますか?はい。
明日は今日は1つのことをすることができますか?はい。
プログラムをクラッシュさせることはできますか?はい。
私はそれがうまくいくと思いますし、うまくいくようですか?はい。
何かが起こる可能性があります。
- 1. 一時オブジェクトの作成はC++コンパイラによって異なりますか?
- 2. C++は、異なるスレッドから未定義の動作
- 3. これには未定義の動作がありますか?
- 4. DAXの動作はネストによって異なります
- 5. コンパイラは-std = C++ 11で起動されますが、std :: moveは未定義なのはなぜですか?
- 6. C++テンプレートクラスは、コンパイラごとに異なる動作をします。
- 7. MSVC++ 2015 - 私のプログラムのSSEコンパイラのバグまたはバグ/未定義の動作?
- 8. このC++コードには未定義の動作が含まれています
- 9. C + C++ =未定義の動作ですか?
- 10. gccとllvmコンパイラではCプログラムの動作が異なります
- 11. IsIconic()の動作環境によって異なります
- 12. pthread_cancelの動作はアームとppcによって異なりますか?
- 13. Expressは、私はこのようになりますAjaxリクエスト作ってい未定義のJSONオブジェクト
- 14. 未定義の動作strtok
- 15. リンクリスト未定義の動作
- 16. 未定義のインデックス動作
- 17. Cコンパイラはどのように異なるメイン関数定義を扱いますか?
- 18. 次のjavascriptコードには未定義の動作がありますか?
- 19. なぜこのコードは未定義の動作ですか?
- 20. なぜそれは未定義に戻っていますか?
- 21. cでのプログラミングはオペレーティングシステムによって異なります
- 22. stringstream.good()> VSとEclipseコンパイラでの動作が異なります
- 23. Angular 2コンパイラ(ngc)はTypescript定義ファイルで動作しますか?
- 24. オプティマイザのバグまたは未定義の動作ですか?
- 25. NgTableの動的ソートは列によって異なります
- 26. セミコロンによって異なる動作をするC++プログラム
- 27. Firebaseの動作が何を変えるかによって異なります。
- 28. JavaScriptでは[未定義、未定義、未定義]と新しいArray(3)はどのように異なるのですか?
- 29. FB.api()によって他の変数が未定義になる
- 30. 未定義のstructポインタ名のtypdefはどのようにC++で動作しますか?
コンパイラ、アーキテクチャ、環境によって異なります。 – slowpoison
どうすればいいですか?はい ?未定義は未定義です。ヌーポインターの逆参照が標準によって許可されている間、マーラーの第6シンフォニーを演奏する。非建設的なものとして閉じる投票。定義されていない振る舞いを説明することは、いくつかの非常に特殊な場合にのみ価値があります。 –