5 #define MACRO_BEGIN if (1) {
6 #define MACRO_END } else voidfunc()
8 #define MACRO_BEGIN do {
9 #define MACRO_END } while (0)
12 /** Marker for use in (RVALUE, (expr)) */
15 #define _CAT(a, b) a ## b
16 #define CAT(a, b) _CAT(a, b)
19 #define STR(it) _STR(it)
22 #define DEFER(id) id EMPTY()