#define log(fmt, ...) printf(fmt, ##__VA_ARGS__)
__VA_ARGS__表示其余参数,加##是为了没有多余参数时去掉第一个参数fmt后面的逗号,如:
log(“log\r\n”);
没有加##就会扩展为:printf("log\r\n", );编译会报错
而加了##就会拓展成:printf("log\r\n");编译正常