当我试图弄清楚时,!0
' 的结果是定义的实现,期望它不等于零我只是读了一些让我感到困惑的东西。
(顺便说一句,它可能是在某些实现上-1
,还是1
严格定义?如果有人能在评论中告诉我会很好)
但我真正的问题是:
在
6.5.17 逗号运算符 2
据说:
如果尝试修改逗号运算符的结果或在下一个序列点之后访问它,则行为未定义。
在下一行中,有一个示例如何使用逗号运算符将参数解析为函数。
f(a, (t=3, t+2), c);
但是这个例子是到目前为止我所知道的未定义行为,不是吗?由于t
被分配3
并且在下一个序列中它增加了2
.
但是该标准没有提到该示例无效。
或者是一个分配不被理解为修改?