10Fermer12
GodzilLe 27/03/2008 à 09:16
Kevin Kofler (./9) :
Godzil (./8) :
a) while(x & i<n)

reviens a faire while((x & i) < n)

Non.
Ça revient à faire x & (i<n).
b) while(x | i>=n)

reviens a faire while((x | i) >= n)

Et ça, ça revient à faire x | (i >= n).

C'est une erreur de conception qu'on reproche souvent au C, les opérateurs bit par bit se comportent comme les opérateurs logiques par rapport aux comparaisons, et ce n'est en général pas ce qu'on veut ou attend.

Pourtant d'apres le C90 le '|' et le '&' sont prioritaires sur les operations de comparaisons