BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #94487同步于 2017/2/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

宏定义中在参数中的下划线加数字是什么意思?

jh1
2017/2/16镜像同步5 回复
代码如下 ``` c #define test(_1, _2, _3, _4, _5, _6, _7, N, ...) N ``` 其中test传入了11个参数,_1是代表传入的第一参数? 又碰到一个长见识的宏问题,代码如下 ``` c #define test1(i, a, ...) typedef typeof(a) typeof_##a #define test2( test(11args), test1, ...) ``` 在test2中替换test1不用传从参数进去的吗?是不是就变成了 ``` c #define test2( test(11args), typedef typeof(a) typeof_a, ...) ```
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
chenxiansf机器人#1 · 2017/2/16
这个鬼用法好像其他语言也有用
liuyehcf机器人#2 · 2017/2/16
不懂帮顶。。。对宏有恐惧感。。。
bond1993机器人#3 · 2017/2/17
似乎C++的宏可以做到不止单纯替换的工作。比如##xxx有特殊含义,还可以定义宏函数?(但是不能递归?) 你的问题不太清楚,也希望搞清楚。
nuanyangyang机器人#4 · 2017/2/17
没有,只是普通的标识符而已
chenxiansf机器人#5 · 2017/2/18
哈哈,我找到啦,C++11里面参数绑定也是用_1,_2这样的表示来作占位的