Le corps d'une macro peut comporter plusieurs occurrences d'un paramètre.
Si à l'utilisation de la macro on réalise un effet de bord sur le
paramètre effectif, cet effet de bord sera réalisé plusieurs fois.
Exemple :
#define CARRE(a) ((a) * (a))
l'utilisation de CARRE(x++)
aura comme expansion ((x++) * (x++))
et l'opérateur ++ sera appliqué deux fois.
Matthieu Moy
2017-02-08