是否有关于gcc中"i = i--"行为的具体文档?

osg*_*sgx 3 c standards gcc c99 operator-precedence

再次,我们最喜欢的"i = i--"类问题.在C99,我们有:

6.5表达式#2:在前一个和下一个序列点之间,一个对象的存储值最多只能修改一次

70)这一段渲染!!未定义!! 语句表达式如

i = ++i + 1;
Run Code Online (Sandbox Code Playgroud)

但对于未完成的行为,可能存在从随机输出到"以文档化方式执行程序"的变体(c99 3.4.3)

那么,问题是:

gcc是否记录了 i = i ++,i = i--等行为的行为

实际代码是

int main(){int i=2;i=i--;return i;}
Run Code Online (Sandbox Code Playgroud)

sch*_*hot 5

GCC不记录此行为." 警告选项"页面提到序列点问题-Wsequence-point,但没有提示明确定义的违规行为.

GCC确实有一个很好的C实现定义行为列表,但我也找不到任何对这个问题的引用.