当我们在创建函数时候,需要使用多个语句,为了保证语句能够按照我们希望的顺序执行。此时应该加上do{}while(0)
例如:
#define LOG_ERROR_TAG(TAG, _fmt_, ...) \
do{\
if((LOG_LEVEL) <= LOG_LEVEL_ERROR){\
arch_printf_begin(LOG_ANSI_COLOR_RED);\
arch_printf("[E] %s: "_fmt_" (%s,%d)", TAG, ##__VA_ARGS__, __FUNCTION__, __LINE__);\
arch_printf_end(LOG_ANSI_COLOR_OFF);\
}\
}while(0)