不知道大家有没有遇到过这种情况:
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不崩,具体是一个什么原理目前我也不是特别清楚,有路过的大佬也可以顺便指导一下我。
以上注释是我个人测出来的结果,具体是怎样的我就不贴图了,如果有遇上相同的情况,还是结合自己的编译环境自己动手测试一下吧。