void show_node_names() { display_flags |= ShowNodeNames; } // what is "|="?
我不确定“| =”是什么或它叫什么。 有什么帮助吗?
答案 0 :(得分:4)
该陈述是按位或分配。
这相当于做display_flags = display_flags | ShowNodeNames
。
特别是,如果display_flags
中的相应位为1
,它会将ShowNodeNames
中的每一位设置为1
。
答案 1 :(得分:3)
|=
运算符是一个复合赋值运算符,如+=
或*=
,但使用按位OR运算符。这条线
display_flags |= ShowNodeNames;
相当于
display_flags = display_flags | ShowNodeNames;
如果您还没有看到按位OR运算符,您应该阅读它以获取更多详细信息。如果您熟悉它,那么您可以将display_flags |= ShowNodeNames;
视为一种说法“使ShowNodeNames
中设置的所有位也设置在display_flags
中。”
希望这有帮助!
答案 2 :(得分:2)
|
(也可以拼写为bitor
)是按位或运算符。它组合了每个操作数的位,以便在设置任一操作数的相应位时设置输出的每个位。将其与按位和运算符&
或bitand
进行比较,其中每个位都设置为的两个操作数的相应位。< / p>
|=
(或or_eq
)是相应的赋值运算符。与所有复合赋值运算符一样,a |= b
等同于a = a | b
,但a
仅计算一次。其效果是设置a
中设置的b
中的每个位,并保持其他位不变。