当年考虑这个问题时,在网上查到的写法是: #define dbgprint(fmt,...) Uart_Printf(fmt,__VA_ARGS__)
但DEBUG关闭时,我用 #define dbgprint(fmt,...) 编译通不过。当dbgprint("abc")时,ARM编译器认为参数不足。而dbgprint("%d",a)是可以的。
现在,参考18楼的写法改成 #define dbgprint(...) 编译能通过了。
曾经一度的写法是: #ifdef DEBUG #define dbgprint Uart_Printf //#define dbgprint Lcd_Printf #else #define dbgprint None_Printf #endif
void None_Printf(char *fmt,...) { } |