c++ - 没有 climits 库的溢出错误
问题描述
我正在解决一个编程问题,有没有一种方法可以在不使用 climits 的 INT_MIN 和 INT_MAX 宏的情况下检查有符号 32 位整数的溢出错误。
解决方案
使用任何技术都无法检查溢出错误。这是因为有符号int
溢出的行为在 C++ 中是未定义的。
您可以做的是编写检测潜在溢出的先发制人代码。该代码的性质取决于您正在执行的操作。但是,如果您想编写可移植的 C++,那么如果不使用std::numeric_limits<int>
功能(取代INT_MIN
和)就很难做到这一点。INT_MAX
推荐阅读
- xamarin.ios - 如何为 ios 实现 System.Reactive 调度程序
- .net-core - Serilog 将空白 CorrelationId 发送到 Seq 记录器
- excel - 如何在两个轴上使用 3 种图表类型或以其他方式正确显示多个数据源的数据?
- reactjs - React Router:自定义浏览器路由器 getUserConfirmation 对话框
- javascript - 在jquery中获取当前单击的项目值
- react-native - null 不是对象(评估'RNGestureHandlerModule.State)
- docker - 找不到指定的框架“Microsoft.AspNetCore.App”,版本“2.1.8”。与码头工人
- twilio - Twilio - 使用入站 SMS webhook 定义参数
- tfs - 如何从 TFS 自定义小部件中获取全局列表?
- azure - Azure 应用服务持续部署 Webhook 不起作用