2014-02-28 74 views
0
void show_node_names() { display_flags |= ShowNodeNames; } // what is "|="? 

我不確定「| =」是做什麼或它叫什麼。 有什麼幫助嗎?」| =「這是什麼意思,這叫什麼? (C++)

+0

http://en.cppreference.com/w/cpp/language/operator_precedence – chris

+1

我已經更新了你的問題,以便一致地提及'| ='(你在幾個地方有'/ =')。請檢查它說現在應該如何。 –

+0

謝謝@Keith Thompson – CodeDoctorJL

回答

4

該聲明是按位或分配。

這等同於做display_flags = display_flags | ShowNodeNames

尤其是,如果ShowNodeNames中的相應位是1,它將把display_flags中的每一位設置爲1

3

|=操作者是一個複合賦值操作符等+=*=,但使用按位或運算符。如果你還沒有看過位或操作符線

display_flags |= ShowNodeNames; 

相當於

display_flags = display_flags | ShowNodeNames; 

,你應該讀了它的更多細節。如果您熟悉它,那麼您可以將display_flags |= ShowNodeNames;視爲「讓ShowNodeNames中的所有位設置爲display_flags」的一種方式。「

希望這會有所幫助!

2

|(也可拼寫爲bitor)是按位或運算符。它將每個操作數的位組合在一起,以便在設置任一操作數的相應位時設置輸出的每一位。將此與按位和運算符,&bitand進行比較,其中每個位都設置爲的對應位,均設置了操作數。

|=(或or_eq)是相應的賦值運算符。與所有複合賦值運算符一樣,a |= b相當於a = a | b,只是a僅被評估一次。其效果是設置在b中設置的a中的每個位,並保持其他位不變。