参考链接
[1] C multi-line macro: do/while(0) vs scope block
[2] What’s the use of do while(0) when we define a macro?
[3] Why use apparently meaningless do-while and if-else statements in macros?
[4] do { … } while (0) — what is it good for?
[5] do { } while(0)
[6] Q: What’s the best way to write a multi-statement macro?