- 主题:问一个宏的写法
我有一堆checkbox(Qt里面的)需要做初始化
ui->checkbox0->setText(strArr[0])
ui->checkbox1->setText(strArr[1])
...
我想写一个宏,省代码
#define set_chk(i) ui->checkbox###i->setText(strArr[i])
我的想法是先要将#i替换,然后再和checkbox##进行粘接,但是这样是不对的
请问对的应该如何写
--
FROM 1.202.141.*
两个#不行
报错,说ui没有checkboxi这个member
他把i直接和checkbox粘合了,并没有做替换
【 在 KillnCov 的大作中提到: 】
: 两个#即可。不要用3个。
: checkbox##i
--
FROM 1.202.141.*
我知道为神马了
我用了一个循环来调用这个宏
for (i = 0; i < LEN; i ++)
{
set_chk(i);
}
这个时候展开会有问题,他不会把i当成变量,而是当成字符去替换
【 在 KillnCov 的大作中提到: 】
: 把原始代码贴出来,肯定可以
--
FROM 1.202.141.*
这个看起来好高级的样子
等我试一下
谢谢
【 在 z16166 的大作中提到: 】
用BOOST_PP_SEQ_FOR_EACH_I()
--
FROM 1.202.141.*