Aviso do Compilador (nível 3 e nível 4) C4101
'identificador': variável local não referenciada
A variável local nunca é usada. Esse aviso ocorre na situação óbvia:
// C4101a.cpp
// compile with: /W3
int main() {
int i; // C4101
}
No entanto, esse aviso também ocorre ao chamar uma função membro static
por meio de uma instância da 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;
}
Nessa situação, o compilador usa informações sobre si
para acessar a função static
, mas a instância da classe não é necessária para chamar a função static
; daí o aviso. Para resolver esse aviso, você pode:
Adicionar um construtor, no qual o compilador usaria a instância de
si
na chamada parafunc
.Remover a palavra-chave
static
da definição defunc
.Chamar a função
static
explicitamente:int y = S::func();
.