如下 #define debug3(format, ...) printf(format, ##VA_ARGS)
debug3("hello \n");
如果不添加##,当可变参数为 0 个时,编译会报错。
##的作用不是“连接前后两个字符串”么? 还是说,c++编译器就是这个处理的?
1
heiheidewo 2021 年 5 月 14 日
就是这么处理的
|
2
codehz 2021 年 5 月 14 日 via Android
这里是编译器扩展,按标准的写法得写
__VA_OPT__(,) __VA_ARGS__ 但是这需要 c++20 |
3
codehz 2021 年 5 月 14 日 via Android
|