Pièges des effets de bord

L'utilisation d'effet de bord sur les paramètres effectifs d'une macro peut avoir des effets complètement inattendus. Après la définition :
#define CARRE(a) ((a) * (a))
l'utilisation de CARRE(x++) aura comme expansion ((x++) * (x++)), l'opérateur ++ sera donc appliqué deux fois.



Matthieu Moy 2017-02-08