我的代码中有这个,它导致了以下警告:
long ans = ((long) INT_MIN) * 2 - 1;
我收到的警告是:
warning: integer overflow detected: op "*"
我包含了 limits.h 以便我可以使用 INT_MIN
#include <limits.h>
最佳答案
这意味着计算将溢出long
的范围。有符号溢出会产生未定义的行为。
long
可表示的值范围与值 INT_MIN
之间的唯一关联是 INT_MIN
可表示为 long
。不能保证小于两倍的 INT_MIN
可以表示为 long
。
关于c - long and = ((long) INT MIN) * 2 - 1;由于整数溢出导致警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4840365/