Advertencia C26450
Desbordamiento aritmético: la operación "operator" provoca desbordamiento en tiempo de compilación. Usar un tipo más amplio para almacenar los operandos (io.1)
Comentarios
Esta advertencia indica que una operación aritmética se ha perdido de forma probable en tiempo de compilación. Se puede afirmar cuando los operandos son constantes en tiempo de compilación. Actualmente, comprobamos tales desbordamientos en las operaciones de desplazamiento izquierdo, multiplicación, suma y resta.
Advertencia C4307 es una comprobación similar en el compilador de Microsoft C++.
Nombre del análisis de código: RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY
Ejemplos
int multiply()
{
const int a = INT_MAX;
const int b = 2;
int c = a * b; // C26450 reported here
return c;
}
Para corregir esta advertencia, utilice el código siguiente:
long long multiply()
{
const int a = INT_MAX;
const int b = 2;
long long c = static_cast<long long>(a) * b; // OK
return c;
}
Consulte también
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