作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下代码:
if (a&&b)
{
...
}
第一个问题,在这种情况下谁决定使用短路评估?编译器还是 C 标准?
第二个问题,首先评估哪一个? a
或b
。顺序是由谁决定的,有没有办法改变我的代码中的顺序?
最佳答案
标准要求进行短路评估。
总是a
在前。您无法在程序中更改它。
引用:6.5.13 逻辑 AND 运算符,第 4 段:
Unlike the bitwise binary
&
operator, the&&
operator guarantees left-to-right evaluation; if the second operand is evaluated, there is a sequence point between the evaluations of the first and second operands. If the first operand compares equal to 0, the second operand is not evaluated.
关于c - 将在短路评估中首先执行 (a&&b),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797964/
我是一名优秀的程序员,十分优秀!