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