![]()
Erreurs avec les priorités des opérateurs ![]()
![]()
![]()
![]()
![]()
Suivant: Erreur avec l'instruction switch Début: Le bêtisier Précédent: Erreurs avec les commentaires
Erreurs avec les priorités des opérateurs
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) == 0xacx & (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) + 0xfx << (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 :
while ((c = getchar()) != EOF) { ... }
30/9/1997