C mehrzeiliges Makro: do / while (0) vs scope block [duplizieren]
Mögliche Duplikate:
Was nützt do while (0), wenn wir ein Makro definieren?
Warum gibt es in C / C ++ - Makros manchmal bedeutungslose do / while- und if / else-Anweisungen?
mache {…} während (0) wofür ist es gut?
Ich habe einige mehrzeilige C-Makros gesehen, die in eine do / while (0) -Schleife eingeschlossen sind:
#define FOO \ do { \ do_stuff_here \ do_more_stuff \ } while (0)
Was sind die Vorteile (falls vorhanden) des Schreibens des Codes auf diese Weise im Gegensatz zur Verwendung eines Basisblocks:
#define FOO \ { \ do_stuff_here \ do_more_stuff \ }