変数を宣言して後でプログラムで使用しないと、コンパイラは警告を表示します。警告はありますか?どのようにエラーが発生する可能性がありますか?ありがとう!なぜ宣言されているが使用されていない変数でエラーが発生するのでしょうか?
答えて
まず、マイナーポイント:決して使用されない変数を宣言することはメモリの浪費であり、したがってそれ自体バグです。
第2に、さらに重要なことは、あなたは決して使用しなかった変数の宣言を書き留めることに苦労したことです。あなたはそれを使用する計画がない場合、あなたは変数を宣言するのに気にしなかったので、これはを忘れてを使用することを示唆している!その場所に間違った変数名をタイプした可能性はありますか?その変数に格納する結果を持つ重要な計算を実行するのを忘れた可能性はありますか?もちろん
、あなたはそれが警告ないエラーだが、その警告が重要な部分にあなたを指すことができる場所、それが状況を確認するのは簡単です理由である、あなたが必要としないことになった何かを宣言している場合があります実際にはバグとなるでしょう。
ほとんどのコンパイラは最適化できないctorとdctorを持つオブジェクトでない限り、最初の点はおそらく問題ではないでしょう。 – strager
コンストラクタとデストラクタが最適化されていない場合、オブジェクトが使用されていないと言っても間違いです(コンパイラが警告を出した場合、コンパイラのバグです)。 –
@ケネディ、私は同意しない。変数はプログラマによって使用されていませんが、オブジェクトはまだインスタンス化されています。この警告は、オブジェクトが使用されていない状態でインスタンス化されているオブジェクトに関するものであり、何もしない変数に関するものではありません。 – strager
これはバグの存在を示している可能性がありますが、宣言されているが未使用の変数は明らかにプログラミングエラーです。
おそらくあなたが変数を使うことを意図していたからです。変数を宣言してから使用しないでください:)
これは役に立つ警告であり、ほとんどの言語で存在します。
それはあなたが誤って代わりにあなたが意図1の別の変数を使用し、タイプミスを検出するのを助けることができる、この警告は、あなたが使用していない1を思い出させます:)
私はあなたが "一般的に変数を宣言しておかない*使用しない"という意味だと思う; –
ああ、ありがとう、固定:) –
それは発生しませんエラー。変数は何もしていないので、あなたがそれを使用しようとしたが、そうではないことを示す可能性があるため、警告が表示されます(通常、ほとんどのコンパイラで上位レベルのみにあります)。場合によっては、コードが正しく動作していない可能性があります。
コンパイラがあなたに少し奇妙なことをしたことを警告しようとしているだけで、コードが失敗することはありません。
このようなことについてお尋ねしますか?
int function() {
double x;
return 42;
}
だけでなく、それは未使用です、ので、変数x
が未使用であると言って警告があります。変数が未使用の場合は何もしないので、警告です。
変数を間違って入力したり誤ってシャドウしたりすると、この警告が表示されることがあります。例えば:
void printArgument10Times(int i) {
for(int i = 0; i < 10; ++i) {
std::cout << i << std::endl;
}
}
// ...
printArgument10Times(42);
の代わりに42 10回を印刷する、それが0 i
〜9は、シャドウとも未使用だった印刷します。コンパイラはこれらのことをあなたに伝えます。
*もちろん、C++ではコンストラクタとデコンストラクタが呼び出されています。
- 1. なぜこの変数が宣言されていないのですか?
- 2. なぜGADBannerViewが宣言されていないのですか?
- 3. なぜ 'EINTR'が宣言されていないのですか?
- 4. 配列で宣言されていないエラーが発生しました
- 5. クラスがPHPで宣言されていない場合、なぜ「新しい」スローエラーが発生しますか?
- 6. なぜこのエラー 'init_task'が宣言されていないのですか?
- 7. Swift:CLLocationManagerDelegateとCoreLocation.frameworkを使用すると「宣言されていないタイプの使用」エラーが発生する
- 8. 宣言されていない変数
- 9. 「宣言されていない識別子を使用していますか?」というエラーが表示されるのはなぜですか?
- 10. エラー:予想される宣言、宣言されていない型 'オブジェクト'の使用、宣言されていない型 'JSON'の使用
- 11. 「厳格な」(JavaScript)が宣言されていない変数を検出しないのはなぜですか?
- 12. 宣言されていない識別変数の使用
- 13. C - 宣言時の宣言されていない変数
- 14. プロトタイプで宣言されている関数が呼び出されないのはなぜですか?
- 15. なぜSchemeでバインドされていない変数エラーが発生するのですか?
- 16. mysqlエラー - テーブル名が宣言されていない変数をスローする
- 17. .xamlページ 'local'変数の宣言されていないエラー
- 18. golangコンパイラは、変数が宣言されていても使用されていないと思うのはなぜですか?
- 19. 同じクラスでメソッドが定義されていると、宣言されていない識別子 'downloadDataFromURL'が使用されるのはなぜですか?
- 20. なぜclangは_Imaginary_Iが宣言されていないのですか?
- 21. `std`モジュールが宣言されていないのはなぜですか?
- 22. IUserTokenProviderが登録されていないというエラーが発生するのはなぜですか?
- 23. オブジェクトstd :: vectorが宣言されていても使用されていないときにコンパイラが警告を出さないのはなぜですか?
- 24. "宣言されていない識別子エラーの使用"
- 25. 宣言されていない識別子エラーの使用
- 26. 変数が定義されていないと言うエラー?
- 27. go:varは宣言されていますが使用されていないエラー - 回避するには?
- 28. 配列の変数名がスタックで宣言されていないのはなぜですか?C++?
- 29. Javascript変数のスコープ内で宣言されていない
- 30. エクスターナル・テンプレート:宣言が宣言されていないもの
Sinan:あなたは自分の投稿を編集する能力を持っています。少しの言語のタイプミスについて心配する必要はありません:) –
"c/C++"と入力して間違ったスペルをしたいだけです – zjsworm
Sinan:確かに、もちろん、しかし、私は誤植についての少しのコメントは必要ではないと思う:) –