我看到密实度的if语句看起来像这样:
// Set a flag if this is an NFI.
if (_isNF)
_type = _type | TYPE_NF_BIT;
什么是|
是什么意思?通常这是指“或”,但它并没有任何意义,我在这里...
按位或者一种bitwise operation的。它可用于例如一些通断标志(指示器),用于进一步的操作。
这是一个bitwise or。正如评论说,声明设置一个标志。例如。如果_type
是(二进制)00100100
和TYPE_NF_BIT
是00000010
,结果会00100110
- 即它确保_type
的第二位的值设置为1,这样你就可以存储多达8个布尔值的一个字节。