首页 > 解决方案 > 没有 climits 库的溢出错误

问题描述

我正在解决一个编程问题,有没有一种方法可以在不使用 climits 的 INT_MIN 和 INT_MAX 宏的情况下检查有符号 32 位整数的溢出错误。

标签: c++

解决方案


使用任何技术都无法检查溢出错误。这是因为有符号int溢出的行为在 C++ 中是未定义的。

可以做的是编写检测潜在溢出的先发制人代码。该代码的性质取决于您正在执行的操作。但是,如果您想编写可移植的 C++,那么如果不使用std::numeric_limits<int>功能(取代INT_MIN和)就很难做到这一点。INT_MAX


推荐阅读