
如下 #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 |