我在J.1未指明的行为下查看了SO/IEC 9899:201x:
"The order in which subexpressions are evaluated and the order in which side effects
take place, except as specified for the function-call (), &&, ||, ?:, and comma
operators (6.5)."
这是否意味着在
中func1() + func2();
func2()可以在func1()之前执行,或者甚至在func1()期间执行?
答案 0 :(得分:4)
在当前标准(ISO / IEC 9899:1999)中,函数调用之间存在一个序列点,但未指定操作数到+
的评估顺序,因此可以调用func1
之前的func2
或func1
之后,但函数调用不得以任何方式重叠或交错。
这意味着func2
和{{1}}中的每一个都可以根据需要与某些共享数据进行交互,而不会以意外的方式在其下更改数据。
答案 1 :(得分:1)
不是在期间,但是肯定是1或2或2然后是1。