Quelle est la portabilité de cette conversion. Puis-je être sûr que les deux affirmations sont acceptées?
int x = 4<5;
assert(x==1);
x = 4>5;
assert(x==0);
Ne demande pas pourquoi. Je sais que c'est moche. Je vous remercie.
assert( 4 < 5);
etassert(!( 4 > 5));
(4 < 5) ? 1 : 0
si j'ai vraiment besoin de convertir un booléen en 0 ou 1. Un bon compilateur produira probablement le même code machine et c'est plus clair pour un lecteur humain.
assert(x!=0)
. Même si bool (true) convertit portable en int (1), les assertions "not false" ont une expression plus lisible.