c - 未定义的行为和序列点

  显示原文与译文双语对照的内容

什么是"序列点"?

未定义的行为和序列点之间的关系是什么?

我经常使用有趣和复杂的表达式,比如 a[++i] = i;,让自己感觉更好。 为什么我应该停止使用它们?

如果你已经阅读过,一定要访问后续的问题 未定义的行为和序列点重新加载

( 注意:这意味着是一个进入堆栈 C++的条目) 。 如果你希望所到过的理念,提供一个常见问题在这里表单,然后帐将元,开始所有这里将是这个地方可以这么做 它的理念。), 回答上面那个问题加以监测,以它的 C++ 聊天室,从它的开始常见问题解答思路所读取的完成,所以你的答案是极有可能在第一个位置来获取那些谁发明

时间:

我猜有一个根本原因是改变,它不仅仅是为了使旧的解释更加清晰: 原因是并发性。未指定的细化顺序只是选择了几个可能的串行排序,这与排序之前和之后的顺序完全不同,因为如果没有指定的排序,并发求值是可能的: 旧规则不是这样的。 例如:

 
f (a,b)

 

以前的b,或者,或者,然后,。 现在,a 和b 可以通过指令来评估,甚至在不同的内核上。

...