Les priorités des opérateurs sont parfois surprenantes.
Les cas les plus gênants sont les suivants :
La priorité des opérateurs bit à bit est inférieure à celle des
opérateurs de comparaison.
Le programmeur a écrit
il désirait
il a obtenu
x & 0xff == 0xac
(x & 0xff) == 0xac
x & (0xff == 0xac)
La priorité des opérateurs de décalage est inférieure à celle des
opérateurs arithmétiques.
Le programmeur a écrit
il désirait
il a obtenu
x << 4 + 0xf
(x << 4) + 0xf
x << (4 + 0xf)
La priorité de l'opérateur d'affectation est inférieure à celle des
opérateurs de comparaison.
Dans la séquence ci-dessous, très souvent utilisée, toutes les parenthèses
sont nécessaire :