#define 多行多语句

使用到了可变参数的宏定义

#define DEBUG_ENABLE 1
#if DEBUG_ENABLE > 0
    #define DEBUG_PORT  UART_PORT2
    #define DBG_BUF_LEN   512
    static char DBG_BUFFER[DBG_BUF_LEN];
    #define APP_DEBUG(FORMAT,...) {
        Ql_memset(DBG_BUFFER, 0, DBG_BUF_LEN);
        Ql_sprintf(DBG_BUFFER,FORMAT,##__VA_ARGS__); 
        if (UART_PORT1 == (DEBUG_PORT)) 
        {
            Ql_Debug_Trace(DBG_BUFFER);
        } else {
            Ql_UART_Write((Enum_SerialPort)(DEBUG_PORT), (u8*)(DBG_BUFFER), Ql_strlen((const char *)(DBG_BUFFER)));
        }
    }
#else
    #define APP_DEBUG(FORMAT,...) 
#endif
原文地址:https://www.cnblogs.com/god-of-death/p/9140719.html