摘要

最近在单片机调试中,需要使用串口打印信息,想要使用格式控制,不想重写printf的putchar,想要实现一个简单的输出错误信息的宏。

宏的不定参数、可变参数

写法

#define uprintf1(...) printf(__VA_ARGS__)
#define uprintf2(format, ...) printf(format, __VA_ARGS__)

注意,宏对参数列表的个数很敏感,若是使用第二种uprintf2写法,必须至少传两个参数,若只是uprintf("hello world"),会出错。

expected expression