在C
中给定以下函数调用:
fooFunc( barFunc(), bazFunc() );
barFunc()
和BazFunc()
的执行顺序没有指定,因此在C
中可能会在调用bazFunc()
之前调用barFunc()
或在调用barFunc()
之前调用bazFunc()
。
Java
是否指定函数参数表达式的执行顺序,像C
一样是未指定的?
在C
中给定以下函数调用:
fooFunc( barFunc(), bazFunc() );
barFunc()
和BazFunc()
的执行顺序没有指定,因此在C
中可能会在调用bazFunc()
之前调用barFunc()
或在调用barFunc()
之前调用bazFunc()
。
Java
是否指定函数参数表达式的执行顺序,像C
一样是未指定的?
来自Java语言规范(关于表达式):
15.7.4 参数列表从左到右求值
在方法或构造函数调用或类实例创建表达式中, 参数表达式可以出现在括号内,由逗号分隔。 在任何参数表达式的任何右侧部分之前, 每个参数表达式似乎都被完全求值。