Freigeben über


Compilerwarnung (Ebene 3 und Ebene 4) C4101

Bezeichner“: unreferenzierte lokale Variable

Bemerkungen

Die lokale Variable wird nie verwendet.

Examples

Diese Warnung tritt in der offensichtlichen Situation auf:

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

Diese Warnung tritt jedoch auch auf, wenn eine static-Mitgliedsfunktion über 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 diesem Fall verwendet der Compiler Informationen über si, um auf die static-Funktion zuzugreifen, die Instanz der Klasse wird jedoch nicht benötigt, um die static-Funktion aufzurufen. Daher wird die Warnung ausgegeben. Sie können diese Warnung folgendermaßen beheben:

  • Fügen Sie einen Konstruktor hinzu, in dem der Compiler die Instanz von si im Aufruf von funcverwendet.

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

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