|= (or_eq) C++ 中的求值顺序
|= (or_eq) order of evaluation in C++
我试图找到以下问题的答案,但没有成功。
我的表达式涉及位 AND 和位 OR(所有无符号长):
A |= B & C
C++ 中的求值顺序是什么?
是 A = A | (B & C)
还是 A = (A | B) & C
?还是取决于编译器版本?
谢谢
使用复合赋值运算符 (op=
),表达式 E1 op= E2
变为 E1 = E1 op E2
1。这意味着对于您的代码 E1
是 A
而 E2
是 B & C
所以结果将是
A = A | (B & C)
我试图找到以下问题的答案,但没有成功。 我的表达式涉及位 AND 和位 OR(所有无符号长):
A |= B & C
C++ 中的求值顺序是什么?
是 A = A | (B & C)
还是 A = (A | B) & C
?还是取决于编译器版本?
谢谢
使用复合赋值运算符 (op=
),表达式 E1 op= E2
变为 E1 = E1 op E2
1。这意味着对于您的代码 E1
是 A
而 E2
是 B & C
所以结果将是
A = A | (B & C)