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();.