检查C中的下溢/溢出?

前端之家收集整理的这篇文章主要介绍了检查C中的下溢/溢出?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有一种检查给定数据类型(uint32,int等)的溢出或下溢的一般方法

我在做这样的事情:

uint32 a,b,c;
... //initialize a,c
if(b < c) {
   a -= (c - b)
}

当我打印一个迭代后,它显示一个大的数字,如:4294963846.

解决方法

检查算术中的溢出/下溢检查结果与原始值相比较.
uint32 a,b;
//assign values
uint32 result = a + b;
if (result < a) {
    //Overflow
}

对于您的具体检查将是:

if (a > (c-b)) {
    //Underflow
}

猜你在找的C&C++相关文章