컴파일러 경고(수준 3) C4101
업데이트: 2007년 11월
오류 메시지
'identifier' :참조되지 않은 지역 변수입니다.
'identifier' : unreferenced local variable
지역 변수가 사용되지 않습니다. 이 경고는 명백한 상황에서 발생합니다.
// C4101a.cpp
// compile with: /W3
int main() {
int i; // C4101
}
하지만 이 경고는 정적 멤버 함수가 클래스의 인스턴스를 통해 호출되는 경우에도 발생합니다.
// 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에 대한 정보를 사용하여 정적 함수에 액세스하지만 정적 함수를 호출하는 데에는 클래스의 인스턴스가 필요하지 않으므로 경고가 발생합니다. 이 경고를 해결하려면 다음을 수행하십시오.
컴파일러가 func에 대한 호출에서 si의 인스턴스를 사용할 수 있는 생성자를 추가합니다.
func 정의에서 static 키워드를 제거합니다.
정적 함수를 명시적으로 호출합니다. int y = S::func();