如果您有一个返回整数的 C 函数,您可以编写如下语句:
MyInt &= MyFunc();
...我们在这里使用按位与赋值运算符。
问题是:是否保证 MyFunc() 被执行,即使 MyInt 等于零?
Likwise,如果我们使用按位或赋值运算符 (|=),即使 MyInt 被设置为全 1,MyFunc() 是否总是会被执行?
换句话说:对于按位运算符,C 中是否允许惰性求值?
最佳答案
没有。按位运算符没有短路。无论 MyInt
的值如何,MyFunc()
的执行都是有保证的。
关于c - &= 和 |= 是否有定义的评估顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354138/