关于对零做除法和取余操作时,DebugheRelease的差异

不知道大家有没有遇到过这种情况:
debug崩完release崩;release崩完打包崩,公司遇到一个项目,遇到种种debug,release和打包之后的差异,为此对vs2015环境的debug和release差异做一个测试。

#include <stdio.h>
#define TWO
int main()
{
	int iDivisor = 0;  //除数
	int iDevidend = 0; //被除数
	int iTest = 1;
	{
# ifdef ZERO
		int iResult = iTest / iDevidend;
		//被除数为0; debug直接崩release没崩
#endif
# ifdef ONE
		int iResult = iDevidend / iTest;
		//除数为0; debug和release没崩
#endif
# ifdef TWO
		int iResult = iDevidend % iTest;
		//取余操作,除数为0; debug和release没崩
#endif
# ifdef THREE
		int iResult = iTest%iDevidend;
		//取余操作,被除数为0; debug崩release没崩
#endif
		
	}
	return 0;
}

由于本人水平有限,也有人说的除法和取余是release崩,debug不崩,具体是一个什么原理目前我也不是特别清楚,有路过的大佬也可以顺便指导一下我。
以上注释是我个人测出来的结果,具体是怎样的我就不贴图了,如果有遇上相同的情况,还是结合自己的编译环境自己动手测试一下吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值