コンパイラの警告 (レベル 3 およびレベル 4) C4101
'identifier': 参照されていないローカル変数
ローカル変数は使用されません。 この警告は、明らかな状況で発生します:
// C4101a.cpp
// compile with: /W3
int main() {
int i; // C4101
}
ただし、クラスのインスタンスを介して static
メンバー関数を呼び出した場合にも、この警告が表示されます:
// C4101b.cpp
// compile with: /W3
struct S {
static int func()
{
return 1;
}
};
int main() {
S si; // C4101, si is never used
int y = si.func();
return y;
}
この場合、コンパイラは si
の情報を使用して static
関数にアクセスしますが、クラスのインスタンスは static
関数の呼び出しには必要ありませんので、警告が表示されます。 この警告を解決するためには:
コンストラクターを追加します。コンパイラは
func
の呼び出しにsi
のインスタンスを使用します。func
の定義からstatic
キーワードを削除します。static
関数を明示的に呼び出します:int y = S::func();
。