假设代码片段
bool a;
a = true;
a |= mayRun();
a = false;
a |= mayRun();
在什么情况下执行 mayRun()?
所有的解释都告诉我,那
a |= b;
相当于
a = a | b;
但不能和例子一样
arr[i++] |= b;
表示。
最佳答案
会一直执行,因为短路不适用于位运算(只适用于&&
和||
等逻辑运算)。
请注意,这种误解可能会导致严重的错误 - 开发人员会假设存在短路,但实际上并没有,所有表达式部分始终在执行,这会改变程序逻辑。
关于c++ - bool a |= mayRun(); 的右 watch 达式是什么时候?被处决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20327121/