Recommandation

Pour toute macro générant des instructions, on recommande d'englober les instructions générées dans la partie instruction d'un do ... while (0). Notre exemple s'écrit ainsi :
#define F(x) do { \
        if (!f(x)) { printf("erreur\n"); exit(1); } \
} while (0)
et tous les problèmes précédents s'évanouissent.



Matthieu Moy 2017-02-08