C++中如何用一个int来存放多个返回结果?

我现在是这么做的,感觉比较繁琐

int arrRlt[5] = { 0 };
arrRlt[0] = IsTestOK(0);
arrRlt[1] = IsTestOK(1);
arrRlt[2] = IsTestOK(2);
arrRlt[3] = IsTestOK(3);
arrRlt[4] = IsTestOK(4);
bool isOK = true;
for (int i = 0; i < 5; i++)
{
    if (arrRlt[i] == 1)
    {
        isOK = false;
        break;
    }
}
return isOK;

现在想用一个int来存放IsTestOK的返回结果,然后检测如果哪一位是1则表示失败,但不知道具体该如何实现?

可以用位操作

放到vector中用count方法判断是否含有1,如果有1就index方法输出其索引,就知道哪一位是·1

你用一个int的不同位来存放,代码只会更复杂,而并不更简单
你节省的仅仅是几个字节的内存,但是浪费的代码其实完全把那些内存给占了,是得不偿失的行为


typedef struct
{
    uint32_t Err1:1;
    uint32_t Err2:1;
    uint32_t Err3:1;
    uint32_t Err4:1;
    uint32_t Err5:1;
   //........
}ERR_T;

ERR_T test()
{
    ERR_T Error;
    if(xxx)Error.err1=true;else Error.err1=false;
    if(xxx)Error.err2=true;else Error.err2=false;
    //...
    return Error;
}

比较常见的应用,需要在一个int里返回各种错误状态