Ich versuche, zwei Integer-Variablen mit derselben Konstante zu vergleichen. Offensichtlich haben beide Variablen in diesem Fall die gleichen Standardwerte. Ich versuchte, die Vergleichsaussage so zu vereinfachen:C if-Anweisung vergleicht zwei Integer-Variablen mit derselben Konstante
if (po->app_tag == po->inst_id == 0)
return 1;
Es hat nicht funktioniert.
Ich musste es Code wie:
if ((po->app_tag == 0) && (po->inst_id == 0))
return 1;
es funktioniert. Kann mir jemand den Unterschied zwischen den beiden erklären? Irgendwie finde ich, dass der C-Compiler eine Vorkehrung für diese Art von Syntax haben sollte, wenn es um den Vergleich zweier ganzzahliger Variablen geht. Ich kann mich irren, wenn ich danach frage ... :), aber ich will einen Grund verstehen. Warum liege ich hier falsch?
Wissen Sie, welche Werte der Ausdruck 'a == b 'zurückgeben kann? –
Wenn Sie eine Variable mit dem Ergebnis eines anderen Vergleichs vergleichen, vergleichen Sie sie mit 0 oder 1, was wahrscheinlich nicht Ihren Vorstellungen entspricht: http://stackoverflow.com/questions/18097922/return-value-of- operator-in-c –
@EugeneSh. ja .. machte einen grundlegenden Fehler ... –