2012-02-01 9 views
1

私はここにいくつかのコードがあります。私が前に見たことがない、C++で記号:| =

case MONITORTYPE_WUXGA_SXGA_WXGA: 
    bResult |= (var == enum1); 
    bResult |= (var == enum2); 

は、今私は、そのがやって知っているが、私は知りません| =です。誰もそこに私に言うことができますか?

答えて

13
a |= b 

bitwise OR動作である

a = a | b 

と同じです。

5

それはと同等です:a |= ba = a | bを意味し、ちょうどa += bようa = a + bを意味

bResult = bResult | (var == enum1); 

2

ビット単位のORです。それはbResult = bResult | (value)と同じ意味です。この場合、varがenum1またはenum2の場合、bResultをtrueに設定します。

3

比較演算子、関係演算子、ブール演算子を除くほとんどの2進演算子では、対応する複合代入演算子♢=が存在します。

つまり、|=は、|の単純な複合代入演算子です。その使用はなど、*=+=と完全に同等であるので、

a |= b; 
// is equivalent to 
a = a | b; 
+1

例 '&&'と '>' – sth

+0

@sthくそーためのように、対応する割り当てを持っていない二項演算子もあります。私はそれから私の答えを修正します。 –

+0

私は、適切な用語は代入演算子ではなく、[複合代入演算子](http://www.cplusplus.com/doc/tutorial/operators/)だと思います。 –

関連する問題