英語版
このページの英語版を見る
警告
見方によっては、警告は 言語設計の欠陥の症状であるか、あるいはコードを分析し潜在的な問題箇所を探すのに便利な「lint」のようなツールである。 ほとんどの場合、これらの問題箇所は、 そのように意図された正当なコードである。さらにまれなケースとして、 プログラマーの意図しないエラーを示す場合もある
警告はプログラミング言語 D の定義された部分ではない。 警告はコンパイラベンダーの裁量で存在し、 おそらくベンダーごとに異なるだろう。 実装が警告メッセージを生成する可能性のあるすべての構文は、 D言語の合法なコードである。
これは、Digital Mars Dコンパイラが-w スイッチがスローされた際に生成する警告である。このモードでは、 警告が発生した場合、コンパイラが強制的に停止する。 ほとんどの警告については、警告とすべきかエラーとすべきか、 また、このような状況下でDコードを正しく記述する方法が 何かについて、活発な議論が交わされている。コンセンサスが得られていないため、 これらはオプションの警告として表示され、 正しいコードを記述する方法が提示される。
警告 - 文に到達できない
次のコードを考えてみよう。
int foo(int i) { return i; return i + 1; }
2番目のreturn文は到達不可能であり、つまりは死んだコードである。 リリースされたコードでは死んだコードは好ましくないが、 正当な 理由で
この警告は、以下の方法で解決できる。
- コメントアウト機能を使って、不要なコードをコメントアウトする。
+/コメント:
int foo(int i) { return i; /+ return i + 1; +/ }
死んだコードをxml-ph-0000@deepl.internal条件文内に置く: - デッドコードをversion(none) 条件文内に置く:
int foo(int i) { return i; version (none) { return i + 1; } }
リリースビルドを行う際には、警告を有効にしてコンパイルする。 - リリースビルドを行う場合のみ、警告を有効にしてコンパイルする。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.109.1
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku