我们知道可以在一个函数中定义参数个数不定的函数:
void MyPrint(format, ...); 用三个点就行。
然而,一个宏函数中怎么使用参数个数不定的功能呢?有两个办法:
#define MyPrint(format, args...) printf(format, args)
#define MyPrint(format, ...) printf(format, __VA_ARGS__)
GCC同时支持两种风格,而微软的CL.EXE只支持第二种。为兼容性考虑,大家都使用第二种格式吧。
void MyPrint(format, ...); 用三个点就行。
然而,一个宏函数中怎么使用参数个数不定的功能呢?有两个办法:
#define MyPrint(format, args...) printf(format, args)
#define MyPrint(format, ...) printf(format, __VA_ARGS__)
GCC同时支持两种风格,而微软的CL.EXE只支持第二种。为兼容性考虑,大家都使用第二种格式吧。