如何检测无符号long long类型的值中是否发生了溢出

时间:2011-05-11 11:34:37

标签: c overflow

  

可能重复:
  Best way to detect integer overflow in C/C++

我有一个简单的C代码,我在Ubuntu Linux上使用gcc版本4.4.3编译。

在这段代码中,我有一个unsigned long long int myvar类型的变量。现在代码工作,我将这个变量myvar传递给一个函数myfunc(),它计算另一个变量的值,该变量也是无符号long long int,并且该计算值在数学上大于传递的值,随着函数myfunc()被连续调用,直到满足某个中断条件,这就会继续发生。

现在我想确保每当发生溢出时(即计算值超过9223372036854775807LL即LONG_MAX),我会通过在控制台上显示“检测到溢出”消息来正常退出。

  1. 如何检测此类溢出?大多数情况下,我想添加任何可移植的溢出检测代码,不依赖于任何标准库/插件,但可以使用任何可用的操作系统作为语言本身的一部分。

  2. 如果什么都没有,那么我可以使用任何内部变量集吗?或其他一些非便携式解决方案?

  3. 任何指针都很有用。

0 个答案:

没有答案