可变参数宏

#define    log(fmt, ...)    printf(fmt, ##__VA_ARGS__)

__VA_ARGS__表示其余参数,加##是为了没有多余参数时去掉第一个参数fmt后面的逗号,如:

log(“log\r\n”);

没有加##就会扩展为:printf("log\r\n", );编译会报错

而加了##就会拓展成:printf("log\r\n");编译正常

 

posted @ 2021-11-12 15:15  L_G_S  阅读(65)  评论(0编辑  收藏  举报