今天,在碰到“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/