我可以确保溢出整数乘法不会发生异常吗?

时间:2014-02-17 11:35:43

标签: c++ linux arithmetic-expressions integer-arithmetic overflowexception

我正在编写一个对长值进行算术运算的代码,它不应该生成溢出异常。

代码需要在Windows(visual studio)和Linux(ARM Linux)上编译。

是否有任何编译指示或编译时指令可用于告诉编译它不应为该特定代码生成溢出异常。

这里的要点是:

1-它适用于Windows和Linux

2-无论项目的一般配置如何,本节都不应生成溢出异常。 (因此在项目中设置参数不是一个好的解决方案。)

1 个答案:

答案 0 :(得分:0)

我不知道会产生任何实现 具有整数类型的表达式的溢出异常。但是 问题是:你想要它做什么。所有的Windows和 我所知道的Linux编译器只会默默地给出错误 结果,我想不出这会是什么情况 优于任何替代方案。

处理此类问题的正常方法是使用 在开始计算之前进行前置条件检查。您 知道将要完成的计算,所以你可以 确定可以安全处理的值的范围 没有溢出,并验证输入是否在该范围内 在开始之前。