请问怎么定义一个宏实现下面的效果 输入 mc(t, a, b)扩展为 t_a t_b,要求参数是可变的 //mc(t, a, b) //t_a //t_b
//mc(t, a, b, c)
//t_a
//t_b
//t_c
请问怎么定义一个宏实现下面的效果 输入 mc(t, a, b)扩展为 t_a t_b,要求参数是可变的 //mc(t, a, b) //t_a //t_b
//mc(t, a, b, c)
//t_a
//t_b
//t_c
|
ipwxOct 15, 2019
1
|
|
lechainOct 16, 2019 via Android
2
##
|
|
augustheartOct 16, 2019
3
可变参的宏 gcc 支持,vc 不支持。
vc 要支持的话就是定义不同个数的参数形式咯 |
|
4
上面说的差不多了,其实就是
#define mc(t,a,b) t##a t##b 写 mc(Class, Example,Inst) 就实现你要的了,至于参数可变的···这个就复杂了,我看大部分例子都是预先写好版本,最多 10 来个参数够你用了吧。这种宏在大型项目里还是挺多的··· |