Le backslash en fin de ligne ne change rien à cela, car c'est toujours le point-virgule (ou dans certains cas, la virgule) qui sépare les instructions.
Version imprimable
Le backslash en fin de ligne ne change rien à cela, car c'est toujours le point-virgule (ou dans certains cas, la virgule) qui sépare les instructions.
Oui, je suis sur qu'on ne peut pas definir une macro definissant des macros.
L'utilisation de \ en fin de ligne permet de definir une macro sur plusieurs lignes.
L'utilisation de do {} while(0) permet de definir une macro comportant plusieurs instructions mais visible de l'exterieur comme une seule (suivant le nombre d'instructions, tu la coupes souvent en plusieurs lignes avec \). Cad qu'elle ne pose pas de problemes dans les contextes (if (cond) macro(); else) qui posent problemes
si tu utilises un bloc sans le savoir.
L'utilisation de l'operateur , permet de definir une macro qui est une expression et qui en evalue plusieurs (pas de if -- mais on a ?: -- ou autre structures de controle).
Aucune de ces techniques n'est recente (je suis sur des les avoir utilisees au debut des annees 90).
Merci bien :)
Je me suis tourné vers autre chose, du genre un système de traces sous forme de module (un couple .h / .c qui définit quelques fonctions de base pour tracer l'execution de mon programme, et une seule macro).