【发布时间】:2013-09-16 21:46:38
【问题描述】:
我想将某个值的符号更改版本传递给函数。如果标志发生变化,我知道如何检查溢出,但是我不知道这种情况。
int apple( int );
int a = 0;
apple( -a );
C/C++ 标准是否涵盖了该定义的行为?我正在传递 -0 我猜当 a == 0 时。用这样的东西代替:a ? -a : a 怎么样?谢谢
【问题讨论】:
-
存在溢出情况,但不为零:
a = -2147483648; apple(-a);在 2 的补码 32 位机器上溢出。
标签: c++ math integer signed integer-overflow