|
是按位或。
|=
表示将您的一个函数中返回的内容与 .bitwise OR
一起使用result
,然后将其存储到result
. 这相当于做类似的事情:
result = result | callFunctionOne(sig);
以您的代码为例:
bool result;
result |= callFunctionOne(sig);
result |= callFunctionTwo(sig);
result |= callFunctionThree(sig);
result |= callFunctionFour(sig);
和你的逻辑
如果在函数中处理了参数 sig,则返回“true”,否则返回“false”;
这意味着如果您不定义结果,则默认为FALSE。
result = false;
callFunctionOne
返回TRUE
result = result | callFunctionOne;
result
等于TRUE。
result = false;
callFunctionOne
返回 FALSE
result = result | callFunctionOne
结果等于 FALSE。
虽然看起来这是 a 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
现在,由于您一个接一个地调用每个函数,这意味着前一个函数的结果最终将决定callFunctionFour
. 在那,四分之三的时间,它将是TRUE和四分之一的时间,它将是FALSE。