出于好奇,有没有办法在运行时检测数字的下溢/溢出错误?如果不是,为什么不呢?我知道这可能是预期的行为,但它仍然会有所帮助 我正在使用Visual Studio 2010,如果它改变任何东西
编辑: 例如:
unsigned int a= 2;
unsigned int b= 3;
a -=b; //<- underflow
答案 0 :(得分:4)
C ++是一种相对轻量级的语言,因此不会为溢出/&#34;下溢&#34;提供任何类型的自动运行时检查。您的代码通常应该以这样的方式编写,即这样的事情不会发生,并且在您处理外部输入的情况下,您需要使用专门为特定代码设计的代码来保护输入你保护的情况。
答案 1 :(得分:2)
Visual Studio包含SafeInt类的实现,默认情况下会在发生上溢/下溢时引发异常。