1.#用来把参数转换成字符串
2.## 用于宏函数的替换部分,这个运算符把两个语言符号组合成单个语言符号,为宏扩展提供了一种连接实际变元的手段。
3.__VA_ARGS__ 是一个可变参数的宏,实现思想就是宏定义中参数列表的最后一个参数为省略号
#define pri(...) printf(__VA_ARGS__)
4.##__VA_ARGS__宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余“,”去掉的作用,否则会编译出错。
1.#用来把参数转换成字符串
2.## 用于宏函数的替换部分,这个运算符把两个语言符号组合成单个语言符号,为宏扩展提供了一种连接实际变元的手段。
3.__VA_ARGS__ 是一个可变参数的宏,实现思想就是宏定义中参数列表的最后一个参数为省略号
#define pri(...) printf(__VA_ARGS__)
4.##__VA_ARGS__宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余“,”去掉的作用,否则会编译出错。