- C99中规定宏也可以使用可变参数(参考C variadic函数)。于是有了__VA_ARGS__宏。
- 举例
#define LogAny(fmt, ...) printf(fmt, ##__VA_ARGS__) - 说明
- 没有## ,语法也是正确的,但当可变参数个数为0时会报错。
- 加上##的作用在于,当可变参数个数为0时,##能把前面多余的","去掉。
本文介绍了C99标准中关于可变参数宏的使用方法,特别是__VA_ARGS__宏的应用。通过一个具体的例子解释了如何定义带有可变参数的宏,并详细说明了在可变参数数量为0时如何避免错误。
#define LogAny(fmt, ...) printf(fmt, ##__VA_ARGS__)
370

被折叠的 条评论
为什么被折叠?