aze (./4) :
c'est pas plutôt une histoire du genre que le résultat de a et b n'est pas défini parce qu'on sait juste que le résultat d'une comparaison est nul ou non (ptet que sur des plateformes "vrai" vaut 0xFFFFFFFF), et que faire une opération bit à bit sur une valeur non définie n'est pas non plus défini ?
Il me semble que la conversion d'une condition en entier donne toujours 1 si la condition est vraie (et pas juste un nombre différent de zéro), mais j'ai paumé mon K&R, donc je peux pas vérifier pour le moment...
EDIT (merci SCPCD) :
"Par definition, une expression arithmétique ou logique vaut 1 si la relation est vraie, 0 si elle est fausse"