GCC对可变参数的宏的支持

匿名可变参数

#define TRACE(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)

带名称的可变参数:
#define TRACE(fmt, args...) fprintf(stderr, fmt, ##args)

“##”会将可变参数列表连接在固定参数的后面,如果可变参数列表为空,"##"会将前面多余的“,”去掉

你可能感兴趣的:(GCC对可变参数的宏的支持)