Upozornění C26453
Aritmetický přetečení: Levý posun záporného znaména čísla není definováno chování (io.4)
Poznámky
Toto upozornění označuje, že kód vlevo posune celočíselnou hodnotu se záporným znaménkem, což je neportovatelné a aktivuje definované chování implementace.
Název analýzy kódu: LEFTSHIFT_NEGATIVE_SIGNED_NUMBER
Příklad
void leftshift(int shiftCount)
{
const auto result = -1 << shiftCount; // C26453 reported here
// code
}
Pokud chcete toto upozornění opravit, použijte následující kód:
void leftshift(int shiftCount)
{
const auto result = ~0u << shiftCount; // OK
// code
}
Viz také
26450
26451
26452
26454
ES.101: Použití nepodepsaných typů pro manipulaci s bity
ES.102: Použití podepsaných typů pro aritmetické
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro