关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法

Posted 长沙红胖子Qt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法相关的知识,希望对你有一定的参考价值。

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127885215

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

Qt开发专栏:各种问题解决(点击传送门)

国产麒麟系统相关开发


问题

  在windows上之前遇到了代码优化问题,进行了优化之后,将代码移植到国产银河麒麟上,在银河麒麟上编译器仍然会优化,并且产生大范围值不变的情况,导致本身作为时间轴的X值范围一直不变化(正常:随着毫秒往前刷新推动)
  

  


相关博客

  《关于 在Qt中的timerEvent信号中设置QCustomplot的日期时间轴范围乱蹿(编译器优化变量volatile) 的解决方法
  《关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法


尝试

  1.使用秒,没有double除法,正常1s1s推进。
  

  2.回到之前的代码,再测试:
  

  3.为了防止是浮点数本身,加了一个测试打印:
  
  4.最终判断为在麒麟上对代码进行了进一步的优化:
  


解决

  调整代码,先定义变量只赋值,不做任何操作,然后每个操作一行即可(估计是先定义成volatile变量之后,再操作就可以),最终调整后的代码:
  


以上是关于关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

关于 国产麒麟系统赋值给双精度double时乘以1.0f编译器优化 的解决方法

关于 国产麒麟系统赋值给双精度double时乘以1.0f编译器优化 的解决方法

关于 国产麒麟系统编译Qt项目是报错:error: cannot find -lGL 的解决方法

delphi中双精度数据类型是否double

java,中双精度double控制保留两位小数,js控制两位小数

c语言中双精度浮点数(即double类型数据)的取值范围