これに基づいてquestion。コンパイラのエラーと警告は標準で指定されていますか?私はgccとvsの両方を長い間コード化しており、警告とエラーがあなたに統一的な経験ではないと伝えようとしていることを学びました。 .netとjavaのような言語では、1つのエンティティが重要なコントロールではなく、興味深い質問になります。標準の警告とエラーとレベルの分類には価値がないでしょうか?私は主に、これらの標準で利用できるコンパイラの数があれば、C++やCに興味があります。どのようにコンパイラの警告とエラーが定義されており、これまでに標準規格に含まれていますか
1
A
答えて
0
私が知る限り、言語標準は、準拠しているプログラムソースで適合する言語実装(コンパイラなど)が行うことのみを定義しています。彼らは警告が何であるかを定義していない。彼らは "未定義"または "実装固有の"動作を話します。
たとえば、GCCはバージョン(4.6より正確です)と要求された最適化に応じて、異なる警告を表示することがあります。
3
これは(明らかに?)言語によって異なります。
C標準では、警告は一切必要ありません。制約または構文規則に違反するすべての翻訳単位に対して「診断」が必要ですが、翻訳単位が拒否される必要はありません。翻訳単位が拒絶されなければならない唯一のケースは、#error
ディレクティブが含まれていて、それが#if
でない場合です。 C++のルールは似ています。 gccは一般的に制約違反について警告しますが、あなたは-pedantic-errors
でそれを変更できます。
この利点の1つは、コンパイラが拡張機能を実装できることです。たとえば、バイナリ定数として0b11001001
を認識すると、構文エラーの警告が発行され、プログラムのコンパイルが続行されます。
Adaは、エラーのあるソースファイルを拒否するようにコンパイラに要求し、コンパイル時の警告(コンパイルが失敗しない)を必要とします。
定義として、警告はコンパイルに失敗しない診断です。
カテゴリを定義すると便利ですが、言語間ではそうすることは実用的ではありません。
関連する問題
- 1. このような動作は標準で定義されていますか?
- 2. c標準ライブラリでstdinはどこに定義されていますか?
- 3. CSS標準で関数が定義されていますか?
- 4. 警告エラー6002:テーブル/ビューにプライマリキーが定義されていません
- 5. GCC/C++コンパイラに割り当てがない行があると警告しますか? Cおよびコンパイラの
- 6. ブラウザに「このページにはセキュリティで保護されたアイテムとセキュリティで保護されていないアイテムが含まれています」という警告が表示されないようにするにはどうすればよいですか?
- 7. JavascriptのshowModalDialogメソッドに標準が定義されていますか?
- 8. Android:admob広告に悪質なウイルス警告が含まれています - セキュリティで保護されています
- 9. これはなぜコンパイルされ、コンパイラがエラーまたは警告として報告することができるコンパイラスイッチがありますか?
- 10. マニフェストにhttp:// */*が含まれていると警告する
- 11. これはどのように定義されていますか?
- 12. 標準ライブラリにはAndroid NDKが含まれています
- 13. ここで、/ toはどのように定義されていますか?
- 14. Googleの「サイトマップにrobots.txtによってブロックされたURLが含まれています」警告
- 15. C++標準ライブラリには、プラットフォームごとにネイティブヘッダーが含まれていますか?
- 16. パーサ名がデフォルトに定義されています: "parse"警告後のバイソン%start
- 17. Eigen "__CUDACC_VER__ 'が定義されていません"警告
- 18. エラー "System.ArrayにLastWriteTimeの定義が含まれていません"
- 19. エラー: 'オブジェクト'に 'methodName'の定義が含まれていません
- 20. 'UnityEngine.GameObject []'に 'Transform'エラーの定義が含まれていません
- 21. ビューにRemoveViewエラーの定義が含まれていません
- 22. gstreamerメタデータの標準テンプレートは既に定義されていますか?
- 23. time_tはどのように定義されていますか?
- 24. マクロはどのように定義されていますか?
- 25. C標準でスタックオーバーフローの動作が定義されていますか?
- 26. なぜDelphiコンパイラは再定義された定数について警告しませんか?
- 27. react-native-router-flux警告:キーが既に定義されています
- 28. クラスライブラリに定義されているUserControlがNuGetパッケージに含まれていることを確認するにはどうすればよいですか?
- 29. このコードはC標準によって保証されていますか?
- 30. メソッドが見つからない、または宣言されていないことに関するコンパイラ警告
私は同じ言語の別のコンパイラと比較して、ある言語のコンパイラが無駄であることをもっと尋ねていました。さまざまな言語のイディオムをすべての言語の統一されたエラーのセットに調和させる方法はありません。 – rerun
興味のある言語を指定しないと、意味のある回答を得るには広すぎますかと疑われます。 –
あなたの提案に基づいて編集されました – rerun