Wie portabel ist diese Konvertierung? Kann ich sicher sein, dass beide Behauptungen zutreffen?
int x = 4<5;
assert(x==1);
x = 4>5;
assert(x==0);
Fragen Sie nicht warum. Ich weiß, dass es hässlich ist. Danke dir.
assert( 4 < 5);
undassert(!( 4 > 5));
(4 < 5) ? 1 : 0
wenn ich wirklich einen Booleschen Wert in 0 oder 1 konvertieren muss. Ein guter Compiler wird wahrscheinlich denselben Maschinencode erzeugen und es ist für einen menschlichen Leser klarer.
assert(x!=0)
. Selbst wenn bool (true) portable in int (1) konvertiert, haben die Asserts "nicht false" einen besser lesbaren Ausdruck.