0

我在 J.1 Unspecified 行为下查看了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() 期间执行?

4

2 回答 2

4

在当前标准(ISO/IEC 9899:1999)中,函数调用之间有一个序列点,+但未指定操作数的评估顺序,因此func1可以在之前或之后调用,func2但函数调用不得重叠或交错反正。

这意味着如果需要,每个共享数据都可以func1func2某些共享数据进行交互,而不会以意想不到的方式更改其下的数据。

于 2009-11-16T23:20:13.610 回答
1

不是在此期间,但可以肯定的是,1 然后 2 或 2 然后 1。

于 2009-11-16T23:19:04.113 回答