Udostępnij za pośrednictwem


Ostrzeżenie C26454

Przepełnienie arytmetyczne: operacja "operator" generuje ujemny wynik niepodpisany w czasie kompilacji

Uwagi

To ostrzeżenie wskazuje, że operacja odejmowania generuje negatywny wynik, który został oceniony w kontekście niepodpisanym, co może spowodować niezamierzone przepełnienia.

Nazwa analizy kodu: RESULT_OF_ARITHMETIC_OPERATION_NEGATIVE_UNSIGNED

Przykład

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

Aby poprawić to ostrzeżenie, użyj następującego kodu:

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

Zobacz też

26450
26451
26452
26453
ES.106: Nie próbuj unikać wartości ujemnych przy użyciu niepodpisanych