zoukankan      html  css  js  c++  java
  • 记一次vc++6.0中程序正常,转 vs2019 c++后报错的问题

      同样的代码,在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强转之后值不一样,所以得到不同的结果了。

  • 相关阅读:
    CSS简要内容
    HTML简要内容
    java中的多线程
    java中的IO流
    hash
    java中的集合
    java中的数组
    java中的异常机制(编译时异常)
    静态变量和静态方法的访问权限
    成员变量和成员方法的访问权限
  • 原文地址:https://www.cnblogs.com/wanggang2016/p/13121991.html
Copyright © 2011-2022 走看看