Warnung C26452
Arithmetischer Überlauf: Die Anzahl der linken Schichten ist negativ oder größer als oder gleich der Operandengröße, die nicht definiert ist (io.3)
Hinweise
Diese Warnung gibt an, dass die Schichtanzahl negativ oder größer als oder gleich der Anzahl der Bits im verschobenen Operanden ist. Beide Fälle führen zu einem nicht definierten Verhalten.
Warnung C4293 ist eine ähnliche Überprüfung im Microsoft C++-Compiler.
Codeanalysename: SHIFT_COUNT_NEGATIVE_OR_TOO_BIG
Beispiel
unsigned long long combine(unsigned lo, unsigned hi)
{
return (hi << 32) | lo; // C26252 here
}
So korrigieren Sie die Warnung unter Verwendung des folgenden Codes
unsigned long long combine(unsigned lo, unsigned hi)
{
return (static_cast<unsigned __int64>(hi) << 32) | lo; // OK
}
Siehe auch
26450
26451
26453
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