我在这里有一些代码:
case MONITORTYPE_WUXGA_SXGA_WXGA:
bResult |= (var == enum1);
bResult |= (var == enum2);
现在我知道它在做什么,但我不知道| =是什么。谁能告诉我那里?
答案 0 :(得分:13)
答案 1 :(得分:5)
相当于:
bResult = bResult | (var == enum1);
就像a += b
表示a = a + b
一样,a |= b
表示a = a | b
。
答案 2 :(得分:3)
对于C ++中的大多数二元运算符♢
(比较运算符,关系运算符和布尔运算符除外),都存在相应的复合赋值运算符♢=
。
也就是说,|=
只是|
的复合赋值运算符,它是按位或。它的用途完全等同于+=
,*=
等。所以
a |= b;
// is equivalent to
a = a | b;
答案 3 :(得分:2)
这是一个按位OR。它与bResult = bResult | (value)
相同。在这种情况下,如果var是enum1或enum2,则将bResult设置为true。
答案 4 :(得分:1)
|
是按位或运算符。 a |= b
等于a = a | b
。
有关按位操作的更多信息:http://en.m.wikipedia.org/wiki/Bitwise_operation