다음을 통해 공유


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