1

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

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

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

这里的要点是:

1-它适用于Windows和Linux

2-不管项目的一般配置如何,这部分都不应该产生溢出异常。(因此在项目中设置参数不是一个好的解决方案)。

4

1 回答 1

0

我不知道任何会为整数类型的表达式生成溢出异常的实现。但问题是:你想让它做什么。我知道的所有 Windows 和 Linux 编译器都会默默地给出错误的结果,而且我想不出这种情况比任何替代方案都好。

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

于 2014-02-17T12:18:47.327 回答