Share via


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

26451
26452
26453
26454
ES.103: No desbordar