我看 SO / IEC 9899 :下J.1未指定的行为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的()?

有帮助吗?

解决方案

在当前的标准(ISO / IEC 9899:1999)有函数调用,但操作数+的评估顺序之间的顺序点没有被指定,以便func1可能之前或之后func2但函数调用必须在调用不重叠或以任何方式进行交织。

这意味着,每个func1func2的,如果需要,具有某些共享数据进行交互,而无需以意想不到的方式下它的数据的变化。

其他提示

不是期间,但是肯定的是,无论是1,则2或2然后1。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top