C语言-不定长参数宏
本文最后更新于:1 年前
C 语言中 VA_ARGS 是一个可变参数的宏,是新的 C99 规范中新增的,需要配合 define 使用,总体来说就是将左边宏中 … 的内容原样抄写在右边 VA_ARGS 所在的位置。
一个不定长参数
#define MY_PRINT(...) hesy_print(__VA_ARGS__)
一个固定参数和一个不定长参数
#define MY_PRINT(fmt, ...) hesy_print(fmt, ##__VA_ARGS__)
如果可变参数被忽略或为空,## 操作将使预处理器(preprocessor)去除掉它前面的那个逗号
可用于C语言下设置默认参数
示例
1 |
|