컴파일러 경고(수준 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();
.