Warnung C26453
Arithmetischer Überlauf: Die linke Verschiebung einer negativen vorzeichenfähigen Zahl ist nicht definiert (io.4)
Hinweise
Diese Warnung gibt an, dass der Code einen negativen signierten integralen Wert verschiebt, der nichtportierbar ist und das definierte Verhalten der Implementierung auslöst.
Codeanalysename: LEFTSHIFT_NEGATIVE_SIGNED_NUMBER
Beispiel
void leftshift(int shiftCount)
{
const auto result = -1 << shiftCount; // C26453 reported here
// code
}
So korrigieren Sie die Warnung unter Verwendung des folgenden Codes
void leftshift(int shiftCount)
{
const auto result = ~0u << shiftCount; // OK
// code
}
Siehe auch
26450
26451
26452
26454
ES.101: Verwenden von nicht signierten Typen für bitmanipulation
ES.102: Verwenden von signierten Typen für Arithmetik
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für