在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.
}
获得在比较为零之前完成按位AND的预期含义。
答案 0 :(得分:6)
if
声明e.g。
if (func1() == 2 & func2() == 3)
==
的优先级高于&
,确保调用这两个函数。