我正在try 编写一个基本的宏,如下所示:
#define USER_ERROR(fmt, ...) { \
fprintf(stderr, "ERROR %s(): %s\n", __func__, fmt, ##__VA_ARGS__); \
} \
我的理想用法是:
USER_ERROR("something went wrong %s %s", more_detail, even_more_detail);
不幸的是,我收到一个编译错误:
格式字符串未使用数据参数
我知道单%s
只处理一个参数,但如何才能使格式化程序变得多样呢?