码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-06-13 23:46:39      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:img   相同   项目   结果   int   http   lazy   技术   64位   

  同样的代码,在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++后报错的问题

标签:img   相同   项目   结果   int   http   lazy   技术   64位   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!