相关疑难解决方法(0)

"x = ++ x"是不是真的未定义?

我在项目中使用Coverity Prevent来查找错误.

它报告此表达式的错误(变量名称当然已更改):

x=
   (a>= b) ?
   ++x: 0;
Run Code Online (Sandbox Code Playgroud)

消息是:

EVALUATION_ORDER缺陷:在" x=(a>= b) ? ++x: 0;"中," x"写在" x"(赋值LHS)中并用" (a>= b) ? ++x: 0;" 写入,但副作用发生的顺序是不确定的,因为没有中间序列点.消息结束

虽然我可以理解" x = x++"是不确定的,但这对我来说有点困难.这个是假阳性吗?

c++ operator-precedence coverity-prevent

12
推荐指数
3
解决办法
2354
查看次数