void show_node_names() { display_flags |= ShowNodeNames; } // what is "|="?
我不確定「| =」是做什麼或它叫什麼。 有什麼幫助嗎?」| =「這是什麼意思,這叫什麼? (C++)
void show_node_names() { display_flags |= ShowNodeNames; } // what is "|="?
我不確定「| =」是做什麼或它叫什麼。 有什麼幫助嗎?」| =「這是什麼意思,這叫什麼? (C++)
該聲明是按位或分配。
這等同於做display_flags = display_flags | ShowNodeNames
。
尤其是,如果ShowNodeNames
中的相應位是1
,它將把display_flags
中的每一位設置爲1
。
的|=
操作者是一個複合賦值操作符等+=
或*=
,但使用按位或運算符。如果你還沒有看過位或操作符線
display_flags |= ShowNodeNames;
相當於
display_flags = display_flags | ShowNodeNames;
,你應該讀了它的更多細節。如果您熟悉它,那麼您可以將display_flags |= ShowNodeNames;
視爲「讓ShowNodeNames
中的所有位設置爲display_flags
」的一種方式。「
希望這會有所幫助!
|
(也可拼寫爲bitor
)是按位或運算符。它將每個操作數的位組合在一起,以便在設置任一操作數的相應位時設置輸出的每一位。將此與按位和運算符,&
或bitand
進行比較,其中每個位都設置爲的對應位,均設置了操作數。
|=
(或or_eq
)是相應的賦值運算符。與所有複合賦值運算符一樣,a |= b
相當於a = a | b
,只是a
僅被評估一次。其效果是設置在b
中設置的a
中的每個位,並保持其他位不變。
http://en.cppreference.com/w/cpp/language/operator_precedence – chris
我已經更新了你的問題,以便一致地提及'| ='(你在幾個地方有'/ =')。請檢查它說現在應該如何。 –
謝謝@Keith Thompson – CodeDoctorJL