Advertencia del compilador (nivel 1) C4293
"operator": recuento de desplazamientos negativo o demasiado grande; comportamiento impredecible
Si un recuento de desplazamientos es negativo o demasiado grande, el comportamiento de la imagen resultante está sin definir.
Comentarios
Para resolver este problema, puede usar una conversión en el primer operando para expandirlo al tamaño del tipo de resultado.
Ejemplo
El ejemplo siguiente genera la advertencia C4293 y muestra cómo corregirla:
// C4293.cpp
// compile with: /c /W1
unsigned __int64 combine (unsigned lo, unsigned hi)
{
return (hi << 32) | lo; // C4293
// In C, try the following line instead:
// return ( (unsigned __int64)hi << 32) | lo;
// In C++, try this line instead:
// return (static_cast<unsigned __int64>(hi) << 32) | lo;
}
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de