#define MACRO(x) \
do { \
... \
... \
} while (0)

マクロで上のようなことをしているものを時々見るのですが、
これってどんな意味があるのですか?

マクロで関係ない変数を書き換えてしまったりするのを防ぐためなのかな、、
とか思うのですが外してるかも。