Tengo una sección de código que se puede resumir de la siguiente manera;¿Por qué el siguiente código no genera una advertencia en MSVC
void MyFunc()
{
int x;
'
'
x;
'
'
}
yo habría pensado que simplemente hace referencia a una variable, sin modificarlo en cualquier forma o el uso de su valor en cualquier caso debe generar una advertencia. En el VS2003 no funciona, y necesito pelusa para recogerlo.
Me doy cuenta de que no afecta a la ejecución, pero dado que es una pieza de código que no hace nada, y el programador tiene la intención de hacer algo, ¿por qué no está marcado?
De manera similar, ¿espera que x = x sea una advertencia?
Editar: Pregunta modificada, ya que esto constituye un buen candidato para una advertencia, pero no es un error. Las respuestas sugieren que esto se maneja mejor con otros compiladores. Intentará VS2008 más tarde y publicará el resultado.
qué ¿daría un error? La sintaxis es correcta. – Grumpy
Quizás no sea un error, pero sin duda una advertencia. if (x = y) también es sintácticamente correcto, pero generalmente no es lo que el programador pretendía.Yo diría que cualquier código que con toda probabilidad no es lo que el programador pretendía debería generar una advertencia, y no puedo ver esa adición de una declaración al código que no hace nada en absoluto la intención de la mayoría de los programadores. –