que tienen el ejemplo siguiente, compilado en VS2005, el nivel 4 de advertencia:¿Por qué es * = diferente respecto a la pérdida de datos en la conversión?
int main(int argc, char *argv[])
{
short s = 2;
short t = 3;
t *= s; // warning C4244: '*=' : conversion from 'int' to 'short', possible loss of data
t = t * s;
}
No me parece que debe haber un aviso en cualquiera de las líneas.
¿* * crea una conversión implícita a int por algún motivo?
EDIT:
parece que la falta de advertencia en la segunda línea (y en VS2008) son los verdaderos preguntas.
Gracias por las respuestas.
No sucede en 2008. –
Uso de VC2008 construido con (/ W4) -> ¡No recibo la advertencia! – AraK
No recibí una advertencia en VS2005. Tal vez puede publicar sus opciones de compilador? –