目次
未定義の動作と不正な動作の違い、診断は必要ありません
ホームページ バックエンド開発 C++ C の「形式が正しくありません。診断は必要ありません」と未定義の動作の違いは何ですか?

C の「形式が正しくありません。診断は必要ありません」と未定義の動作の違いは何ですか?

Nov 25, 2024 am 10:26 AM

What's the Difference Between C  's

未定義の動作と不正な動作の違い、診断は必要ありません

間違いなく、C 標準では、「不明瞭」として分類される動作に対して広範な定義が導入されています。しかし、「プログラムの形式が正しくありません。診断は必要ありません」というフレーズは、他の動作カテゴリとの区別に関して疑問を引き起こしています。

適切な形式の動作と不適切な動作の定義:

C 標準では、プログラムを整形式か不正形式に分類します。適切に形式化されたプログラムは、構文と診断可能な意味規則の両方に準拠しています。逆に、不正な形式のプログラムはこれらのルールに違反するため、コンパイルしないことが理想的です。

実装定義、未指定、および未定義の動作:

実装定義および未指定の動作は次のとおりです。整形式の動作とは異なりますが、誤ったコードを意味するものではありません。前者の場合、実装はその特定のアクションを文書化する必要がありますが、後者の場合、文書化は必要ありません。一方、未定義の動作は、1.3.13.

コンパイラ、未定義の動作、および不正な形式のプログラム:

によれば、プログラムが間違っていることを意味します。 「エラー」という用語は、コンパイラーがエラー メッセージを表示してコンパイルを終了する必要があることを示唆していますが、C 標準では次のことが許可されています。未定義の動作をサイレントに処理します。特に、コンパイラは、未定義の動作が原因で警告を発行したりコンパイルを終了したりしないことがよくあります。

不正な形式のプログラムと診断要件:

「診断は必要ありません」の使用「不正な形式」と並んで、矛盾が生じます。不正な形式のプログラムをコンパイルすべきでない場合、コンパイラーがそれらを黙って無視できるようにすることは直観に反します。ただし、標準ではこの可能性が明示的に認められています。

結論:

「不正な形式; 診断は必要ありません」と「未定義の動作」の区別は依然として曖昧です。不正な形式のプログラムと不正なコード、および未定義の動作と実行時の問題との間に関連性がある可能性がありますが、これは常に一貫しているわけではありません。最終的には、「診断が不要である」という側面が最も重要です。これは、プログラムの形式が正しくない場合に診断生成の期待を無効にするためです。

以上がC の「形式が正しくありません。診断は必要ありません」と未定義の動作の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか? C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか? Mar 03, 2025 pm 05:52 PM

C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

GULC:Cライブラリはゼロから構築されています GULC:Cライブラリはゼロから構築されています Mar 03, 2025 pm 05:46 PM

GULC:Cライブラリはゼロから構築されています

c言語関数形式文字ケース変換手順 c言語関数形式文字ケース変換手順 Mar 03, 2025 pm 05:53 PM

c言語関数形式文字ケース変換手順

C言語関数の定義と呼び出しルールは何ですか、そして C言語関数の定義と呼び出しルールは何ですか、そして Mar 03, 2025 pm 05:53 PM

C言語関数の定義と呼び出しルールは何ですか、そして

明確な使用法とフレーズ共有 明確な使用法とフレーズ共有 Mar 03, 2025 pm 05:51 PM

明確な使用法とフレーズ共有

メモリに保存されているC言語関数の返品値はどこにありますか? メモリに保存されているC言語関数の返品値はどこにありますか? Mar 03, 2025 pm 05:51 PM

メモリに保存されているC言語関数の返品値はどこにありますか?

C標準テンプレートライブラリ(STL)はどのように機能しますか? C標準テンプレートライブラリ(STL)はどのように機能しますか? Mar 12, 2025 pm 04:50 PM

C標準テンプレートライブラリ(STL)はどのように機能しますか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか? STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか? Mar 12, 2025 pm 04:52 PM

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?

See all articles