今天,在碰到“Why are these constructs using pre and post-increment undefined behavior?”问题后,我决定获取我可以找到并阅读的更多有关下一个C标准的最新草案。
在C17草案中发现以下段落之后不久:



现在我有点困惑。这不是说i = i++是定义的行为吗?这次,我查看了另一个草稿C99:



错过了那句话!

问题

  • 我误会了吗?
  • 答案是否过时?
  • 我看错了草稿吗?

  • 注意:this question是相关的,尽管它与C++有关。

    最佳答案

    您突出显示的段落只说表达式i++i在对完整表达式i = i++求值之前先求值。它仍然是未定义的行为,因为在没有序列点的表达式中,多次修改了i

    该段落最初出现在C11中,因此与该版本C17相同。

    关于c - i = i++是否会在C17中重新定义好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53468432/

    10-13 03:11