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