Avviso del compilatore (livello 3) C4101
Aggiornamento: novembre 2007
Messaggio di errore
'identificatore': variabile locale senza riferimenti
'identifier' : unreferenced local variable
La variabile locale non viene mai utilizzata. L'avviso viene generato nella situazione riportata di seguito:
// C4101a.cpp
// compile with: /W3
int main() {
int i; // C4101
}
Viene inoltre generato quando si chiama una funzione membro static tramite un'istanza 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 questa situazione, le informazioni relative a si vengono utilizzate durante la compilazione per accedere alla funzione static, ma non è necessario utilizzare l'istanza della classe per chiamare la funzione static. Viene quindi generato l'avviso. Per risolvere il problema, è possibile effettuare le seguenti operazioni:
Aggiungere un costruttore, in cui verrà utilizzata l'istanza di si nella chiamata a func.
Rimuovere la parola chiave static dalla definizione di func.
Chiamare la funzione static in modo esplicito: int y = S::func();.