unsichere Verwendung des Typs 'bool'
-
Hallo! Ich bekomme folgende Warnung:
warning C4804: '>' : unsichere Verwendung des Typs 'bool' in einer Operation
wenn ich diesen code kompilieren will:
if ((22 > punkte > bankPunkte) || (bankPunkte > 21))
ich kann mir schon denken, dass es daran liegt, dass ich 2 mal > in einem Ausdruck verwendet hab. Also meine Frage: Warum protestiert der Compiler hier?
Warum ist diese Verwendung "unsicher"?
-
a < b < c ist (a < b) < c. a < b ergibt entweder true oder false, also muss er als nächstes true < c oder false < c auswerten.
-
Weil unsicher ist, was du hier machen willst.
22 > punkte ergibt ein bool, also 0 oder -1. (oder so)
Jedenfalls wirst du diesen Wert dann mit bankPunkte vergleichen und das ist ganz bestimmt nicht im Sinne des Dus.
MfG mAV
PS: Mist, zu spät
-
Wie will der Compiler denn einen bool wert mit einem int wert vergleichen?
Und wie erreiche ich es, dass der Ausdruck das macht, was er soll (also eine a < b < c Beziehung wie in der Mathematik).
-
Schizzman schrieb:
Wie will der Compiler denn einen bool wert mit einem int wert vergleichen?
true == 1, false == 0
Und wie erreiche ich es, dass der Ausdruck das macht, was er soll (also eine a < b < c Beziehung wie in der Mathematik).
a < b && b < c
?