Avviso del compilatore (livello 3 e livello 4) C4101
'identifier': variabile locale senza riferimenti
La variabile locale non viene mai usata. Questo avviso si verifica nella situazione ovvia:
// C4101a.cpp
// compile with: /W3
int main() {
int i; // C4101
}
Tuttavia, questo avviso si verifica anche quando si chiama una funzione membro tramite un'istanza static
della classe :
// 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 questo caso, il compilatore usa informazioni su si
per accedere static
alla funzione, ma l'istanza della classe non è necessaria per chiamare la static
funzione, quindi l'avviso. Per risolvere questo avviso, è possibile:
Aggiungere un costruttore in cui il compilatore userà l'istanza di
si
nella chiamata afunc
.Rimuovere la
static
parola chiave dalla definizione difunc
.Chiamare la
static
funzione in modo esplicito:int y = S::func();
.