Warnung C6288
Falscher Operator: Gegenseitige Einbindung über && ist immer Null. Haben Sie || verwendet Statt?
Hinweise
Diese Warnung gibt an, dass in einem Testausdruck eine Variable mit zwei verschiedenen Konstanten getestet wird. Das Ergebnis hängt davon ab, dass beide Bedingungen wahr sind, was unmöglich ist. Der Code in diesen Fällen weist darauf hin, dass die Absicht des Programmierers nicht ordnungsgemäß erfasst wird. Es ist wichtig, den Code zu untersuchen und das Problem zu beheben. Andernfalls verhält sich Ihr Code nicht wie erwartet.
Dieses Problem wird häufig durch die Verwendung &&
von ; anstelle von ||
, aber auch durch verwendung ==
, wo !=
beabsichtigt.
Codeanalysename: MUTUALINCLUSIONOVERANDISFALSE
Beispiel
Der folgende Code generiert diese Warnung:
void f(int x)
{
if ((x == 1) && (x == 2)) // warning
{
// code ...
}
}
So korrigieren Sie die Warnung unter Verwendung des folgenden Codes
void f(int x)
{
if ((x == 1) || (x == 2))
{
// logic
}
/* or */
if ((x != 1) && (x != 2))
{
// code ...
}
}
Das Analysetool warnt nicht, wenn der Ausdruck Nebenwirkungen hat.
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