<分区>
在 C++ 中,== 和 != 的优先级高于按位 AND、XOR 和 OR 的基本原理是什么?
在我看来,operator==
和 operator!=
放在 operator&
之后更自然,operator^
和 运算符|
。我想了解动机,以便更好地记住顺序。
例如,我认为以下类型的用法很常见:
if (bitFields & value == 0) { // Incorrect test.
// Do Something.
}
既然 == 结果不是 1 就是 0,为什么要用它来进行按位运算呢?相反,上面必须写成:
if ((bitFields & value) == 0) { // Correct test.
// Do Something.
}
在与零比较之前完成按位 AND 以获得预期的含义。