检查C中的下溢/溢出?

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

我在做这样的事情:

  1. uint32 a,b,c;
  2. ... //initialize a,c
  3. if(b < c) {
  4. a -= (c - b)
  5. }

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

解决方法

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

对于您的具体检查将是:

  1. if (a > (c-b)) {
  2. //Underflow
  3. }

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