incre在c语言,在C函数调用中使用increment运算符是否合法?

Quoth

C++ standard 1.9.16:

When calling a function (whether or

not the function is inline), every

value computation and side effect

associated with any argument

expression, or with the postfix

expression designating the called

function, is sequenced before

execution of every expression or

statement in the body of the called

function. (Note: Value computations

and side effects associated with the

different argument expressions are

unsequenced.)

所以在我看来,这段代码:

foo(i++);

是完全合法的。它将递增i,然后调用foo与以前的值i。但是,这段代码:

foo(i++, i++);

产生未定义的行为,因为1.9.16段还说:

If a side effect on a scalar object is unsequenced relative to either another side effect on the same scalar object or a value computation using the value of the same scalar object, the behavior is undefined.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值