我在c ++中有一个关于"| ="的问题,这个运算符是如何工作的,例如:
bool result;
result |= callFunctionOne(sig);
result |= callFunctionTwo(sig);
result |= callFunctionThree(sig);
result |= callFunctionFour(sig);
Run Code Online (Sandbox Code Playgroud)
如果在函数中处理了参数sig,则上面调用的函数将重新"true",另外,返回"false";
每次只能在一个函数中处理sig," |=" 如何工作?
小智 7
| 是按位OR.
|=说取你的一个函数返回bitwise OR的内容result,然后将其存储到result.这相当于做了以下事情:
result = result | callFunctionOne(sig);
以你的代码为例:
bool result;
result |= callFunctionOne(sig);
result |= callFunctionTwo(sig);
result |= callFunctionThree(sig);
result |= callFunctionFour(sig);
Run Code Online (Sandbox Code Playgroud)
和你的逻辑
如果在函数中处理了参数sig,则会将"true"重新设置为"true",另外,返回"false";
这意味着如果你没有定义结果,它将默认为FALSE.
result = false;
Run Code Online (Sandbox Code Playgroud)
callFunctionOne返回TRUE
result = result | callFunctionOne;
Run Code Online (Sandbox Code Playgroud)
result等于TRUE.
result = false;
Run Code Online (Sandbox Code Playgroud)
callFunctionOne 返回FALSE
result = result | callFunctionOne
Run Code Online (Sandbox Code Playgroud)
结果等于FALSE.
虽然看起来这是一个boolean OR,它仍然使用的bitwise OR本质上OR'ing是数字1或0.
因此,如果它1等于TRUE并且0等于FALSE,请记住您的真值表:
p q p ? q
T T T
T F T
F T T
F F F
Run Code Online (Sandbox Code Playgroud)
现在,由于您将每个函数调用到另一个函数,这意味着先前函数的结果将最终确定最终结果callFunctionFour.在那里,四分之三的时间,它将是真的,四分之一的时间,它将是假的.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |