Developpez.com - C
X

Choisissez d'abord la catégorieensuite la rubrique :

next up previous contents index
Next: Erreurs avec les macros Up: Le bêtisier Previous: Le bêtisier

Sous-sections

Erreur avec les opérateurs

Erreur sur une comparaison



Ce que voulait le programmeur




Comparer a et b




Ce qu'il aurait dû écrire




if (a == b)





Ce qu'il a écrit




if (a = b)





Ce qu'il a obtenu




une affectation de b à a, suivie d'une comparaison à 0 de la valeur affectée.


 

Comment est ce possible ?

L'affectation est un opérateur et non pas une instruction.

Erreur sur l'affectation

C'est le pendant de l'erreur précédente.



Ce que voulait le programmeur




Affecter b à a




Ce qu'il aurait du écrire




a = b;





Ce qu'il a écrit




a == b;





Ce qu'il a obtenu




La comparaison de a à b, suivie de l'inutilisation du résultat.


 

Comment est ce possible ?

Une dérivation possible pour instruction est :
instruction :
$\Rightarrow$ expressionoption ;

Pour que cela ait un sens, il faut que l'expression réalise un effet de bord, mais rien ne l'impose dans la définition du langage.


next up previous contents index
Next: Erreurs avec les macros Up: Le bêtisier Previous: Le bêtisier
Bernard Cassagne
1998-12-09
Contacter le responsable de la rubrique C