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();
.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de