C 和 Java 中的短路求值:有保证吗?
短路求值是一种语言功能,允许表达式进行部分评估,一旦知道结果就停止。这在某些情况下可以显着提高性能。
Java 的短路评估
在 Java 中,条件表达式 if (a != null && a.乐趣());受益于短路评估。当 a 为 null 时,条件将为 false,并且表达式 a.fun() 将不会被计算。这节省了潜在访问空引用的成本。
C 的短路评估
在 C 中,条件表达式 if (a != 0 & &a->fun());还实现了对 int 和 bool 等内置类型的短路评估。这意味着如果 a 为零,则不会计算表达式 a->fun()。
可移植性和编译
保证短路计算跨不同平台和编译器的 C 内置类型。但是,请务必注意重载 && 或 ||自定义类型的运算符可以禁用短路求值。这是因为编译器无法确定重载运算符的行为。因此,通常不建议重载这些运算符。
以上是C 和 Java 中的短路评估是否有保证?的详细内容。更多信息请关注PHP中文网其他相关文章!