IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
next up previous contents index
Next: Erreur avec l'instruction switch Up: Le bêtisier Previous: 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) == 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 :
    while ((c = getchar()) != EOF)
       {
       ...
       }
    



Bernard Cassagne
1998-12-09