Advertencia del compilador (niveles 3 y 4) C4101
'identifier': variable local sin referencia
Nunca se usa la variable local. Esta advertencia se produce en la situación obvia:
// C4101a.cpp
// compile with: /W3
int main() {
int i; // C4101
}
Sin embargo, esta advertencia también se produce al llamar a una función miembro static
a través de una instancia de la clase:
// 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;
}
En esta situación, el compilador usa información sobre si
para acceder a la función static
, pero la instancia de la clase no es necesaria para llamar a la función static
y, por lo tanto, la advertencia. Para resolver esta advertencia, podría hacer lo siguiente:
Agregar un constructor en el que el compilador usaría la instancia de
si
en la llamada afunc
.Quitar la palabra clave
static
de la definición defunc
.Llamar a la función
static
explícitamente:int y = S::func();
.