5

次のコードを試すと:

#if 11 & 10 == 10
#endif

式の評価はtrueですが、それを次のように変更すると:

#if 10 & 10 == 10
#endif

評価は false を返しますが、 & 演算子の定義に基づいて true を返す必要があります (正しいプリプロセッサを試しているとき)。一般に、最初のオペランドに 0 が含まれているものは何でも、結果が何であるかを無視して false を返します。

誰が問題が何であるか知っていますか?

4

2 に答える 2

7

==は の前に評価されるため、操作の順序が原因のよう&です。括弧は私のために働いた:

#if (10 & 10) == 10
于 2013-03-12T03:17:58.577 に答える
5

==よりも優先順位が高い&

if 11 & 10 == 10評価するためにif 11 & 1評価するif 1

if 10 & 10 == 10評価するためにif 10 & 1評価するif 0

于 2013-03-12T03:21:08.257 に答える