首页 > 编程语言 > 详细

记一次vc++6.0中程序正常,转 vs2019 c++后报错的问题

时间:2020-06-13 23:28:00      阅读:144      评论:0      收藏:0      [点我收藏+]

  同样的代码,在vc++6.0编译器中,计算的正常,但是迁移到vs2019中之后,运行会直接崩掉(项目中实际的程序循环几万遍,每次循环会用到上次的值,所以排查这个问题花了很久),现在在这里记录下;这里之所以会出现问题,主要是非法数值强转,不同编译器计算的结果不一样:

1、VC++6.0中

技术分享图片

 

 

 这里N1是非法数值:-1.#IND000000000000,fllor函数向下取整后,依旧是非法数值,这里强转int之后,数值是0

2、VS2019 C++

技术分享图片

这里N1是非法数值:-nan(ind),fllor函数向下取整后,依旧是非法数值,这里强转int之后,数值是-2147483648,也就是64位系统中int的最小值

 

看到这里就明白为什么相同代码用不同编译器得到的结果不一样了,因为我的代码中下次循环需用到上次的值,结果Int强转之后值不一样,所以得到不同的结果了。

 

记一次vc++6.0中程序正常,转 vs2019 c++后报错的问题

原文:https://www.cnblogs.com/wanggang2016/p/13121991.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!