"|="这是什么意思,这叫什么?(C++)

"|=" what does this mean and what is this called? (c++)

本文关键字:什么 C++ 是什么 意思      更新时间:2023-10-16
void show_node_names()   { display_flags |= ShowNodeNames; } // what is "|="?

我不确定"|="做什么或它叫什么。有什么帮助吗?

该语句是按位或赋值。

相当于做display_flags = display_flags | ShowNodeNames

特别是,它将display_flags中的每个位设置为1 ShowNodeNames中的相应位是否1

|=运算符是复合赋值运算符,如 +=*= ,但使用按位 OR 运算符。该行

display_flags |= ShowNodeNames;

相当于

display_flags = display_flags | ShowNodeNames;

如果您还没有看到按位 OR 运算符,则应阅读它以获取更多详细信息。如果您熟悉它,那么您可以将display_flags |= ShowNodeNames;视为一种说法 "将所有位设置为ShowNodeNames也设置在display_flags中 "。

希望这有帮助!

|(也可以拼写为bitor)是按位或运算符。它组合每个操作数的位,以便在设置任一操作数的相应位时设置输出的每个位。将其与按位和运算符进行比较,&bitand,其中每个位都设置了两个操作数的相应位。

|=(或or_eq)是对应的赋值运算符。与所有复合赋值运算符一样,a |= b等价于a = a | b,只不过a只计算一次。它的效果是将每个位设置为b a,而其他位保持不变。