Duplicatas possibles :
Instructions Do-While et if-else dans les macros C/C++.
do { } while (0) - à quoi cela sert-il ?
Je suis en train de lire le noyau linux et j'ai trouvé beaucoup de macros comme celle-ci :
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
Pourquoi utilise-t-on cela plutôt que de le définir simplement dans un {} ?