C 宏使用变量值

C++ Macro to use values of variables

本文关键字:变量值      更新时间:2023-10-16

我有一个带有4个类的对象的程序,例如po1,po2,po3,po4。我想将一些功能称为for循环中的参数。喜欢:

for(int i = 0; i < 4; i++){
    func(PO<i>);    //Something like a macro to replace the value i in the function.    

我尝试了令牌粘贴,但我得到的只是poi,而不是获得i的价值。有什么办法做到这一点吗?(宏,功能等)

这是我的代码

Player PO[4] = {Player{'l',WHITE},
                Player{'l',WHITE},
                Player{'l',WHITE},
                Player{'l',WHITE}
               };

'l'和白色是参数。

基于 @samvarshavchik的评论,我得到了解决方案。

在这里,

Player *PK[4] = {&PO1,&PO2,&PO3,&PO4};
for(int i = 0; i < 4; i++}{
    func(*PK[i]);
}

使用数组或 std::vector代替

MyObject Pos[4] = {MyObject{42}, MyObject{51}, MyObject{21}, MyObject{12}};
for (auto& po : Pos) {
    func(Po);
}