gpt4 book ai didi

c++ - 按位与函数在 C++ 中返回 bool

转载 作者:可可西里 更新时间:2023-11-01 17:40:01 26 4
gpt4 key购买 nike

我写了一个程序,列出一组东西中的错误,最后返回一个 boolean 值(返回 true 表示没有发现错误)。

这里是我的代码的总结:

bool checkStuff1() {/*...*/}
bool checkStuff2() {/*...*/}
// ...
bool checkStuffN() {/*...*/}

bool checkAllStuff()
{
bool result = true;
result &= checkStuff1();
result &= checkStuff2();
// ...
result &= checkStuffN();
return result;
}

我相信 result 的值最终会是正确的。但是,我想确保所有函数 checkStuffX() 都被调用(因为它们在失败时打印错误消息,我希望打印所有错误消息)。

我知道如果我这样写,它会在第一个失败后跳过所有 checkStuffX() :

result = result && checkStuffX(); // Will not call checkStuffX() if result is already false

我也知道如果我这样写,它会调用所有的checkStuffX()函数:

result = checkStuffX() && result; // Will always call checkStuffX() even if result is false

但我想知道我使用的代码的行为(按位比较)是否由标准确定和保证?

或者是否存在未定义行为的风险,具体取决于所使用的编译器及其优化?

最佳答案

这很好。

您所指的短路评估仅适用于 &&|| 运算符。

关于c++ - 按位与函数在 C++ 中返回 bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com