Erreur sur macro avec paramètres

La distinction entre macro avec paramètres et macro sans paramètre se fait sur la présence d'une parenthèse ouvrante juste après le nom de la macro, sans aucun blanc entre les deux. Ceci peut amener des résultats surprenant ; comparer les deux exemples suivants :
Définition de la macro paramètres corps de la macro
#define add(a,b) (a + b) a et b (a + b)
#define add (a,b) (a + b) aucun (a,b) (a + b)



Matthieu Moy 2017-02-08