Aviso C26454

Estouro aritmético: a operação 'operador' produz um resultado negativo não assinado em tempo de compilação

Comentários

Esse aviso indica que a operação de subtração produz um resultado negativo que foi avaliado em um contexto não assinado, o que pode resultar em estouros não intencionais.

Nome da análise de código: RESULT_OF_ARITHMETIC_OPERATION_NEGATIVE_UNSIGNED

Exemplo

unsigned int negativeunsigned()
{
    const unsigned int x = 1u - 2u; // C26454 reported here
    return x;
}

Para corrigir esse aviso, use o seguinte código:

unsigned int negativeunsigned()
{
    const unsigned int x = 4294967295; // OK
    return x;
}

Confira também

C26450
C26451
C26452
C26453
ES.106: Não tente evitar valores negativos usando unsigned