C makro wieloliniowe: do / while (0) vs blok zakresu [duplikat]
Możliwe duplikaty:
Jaki jest pożytek z funkcji while, gdy definiujemy makro?
Dlaczego czasami nie ma żadnych instrukcji do / while i if / else w makrach C / C ++?
rób {…} a (0), do czego to jest dobre?
Widziałem kilka wieloliniowych makr C, które są zapakowane w pętlę do / while (0), jak:
#define FOO \ do { \ do_stuff_here \ do_more_stuff \ } while (0)
Jakie są korzyści (jeśli występują) zapisania kodu w ten sposób w przeciwieństwie do korzystania z podstawowego bloku:
#define FOO \ { \ do_stuff_here \ do_more_stuff \ }