Sdílet prostřednictvím


Compilerwarnung (Stufe 3) C4101

Aktualisiert: November 2007

Fehlermeldung

'Bezeichner': Unreferenzierte lokale Variable
'identifier' : unreferenced local variable

Die lokale Variable wird keinesfalls verwendet. Im folgenden Fall wird die Warnung eindeutig ausgegeben:

// C4101a.cpp
// compile with: /W3
int main() {
int i;   // C4101
}

Die Warnung tritt jedoch auch auf, wenn eine static-Memberfunktion durch eine Instanz der Klasse aufgerufen wird:

// 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;
}

In dieser Situation greift der Compiler unter Verwendung der Informationen für si auf die static-Funktion zu, die Klasseninstanz ist jedoch für den Aufruf der static-Funktion nicht nötig, sodass wiederum die Warnung ausgegeben wird. Sie haben folgende Möglichkeiten, um die Warnung aufzulösen:

  • Fügen Sie einen Konstruktor hinzu, in dem der Compiler die Instanz von si für den Aufruf von func verwenden würde.

  • Entfernen Sie das static-Schlüsselwort aus der func-Definition.

  • Rufen Sie die static-Funktion explizit auf: int y = S::func();.