关于 windows系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法
在过去,测试过,在windows上双精度浮点计算不会优化, 但是最近在windows10虚拟机上使用Qt5.9.3的msvc2017x64版本,居然进行了优化,导致卡了一下,这是之前咱们进行时间轴推进windows不会进行优化的文章:《关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法》(下图是麒麟上不正常,windows正常推进)
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140592209
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
Qt开发专栏:各种问题解决(点击传送门)
问题
在过去,测试过,在windows上双精度浮点计算不会优化,
但是最近在windows10虚拟机上使用Qt5.9.3的msvc2017x64版本,居然进行了优化,导致卡了一下,这是之前咱们进行时间轴推进windows不会进行优化的文章:《关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法》(下图是麒麟上不正常,windows正常推进)
这个不优化,使用的是物理机windows10的Qt5.9.3的mingw32版本。
但是本次环境版本自动进行了优化:
相关博客
《关于 在Qt中的timerEvent信号中设置QCustomplot的日期时间轴范围乱蹿(编译器优化变量volatile) 的解决方法》
《关于 国产麒麟系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法》
《关于 windows系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法》
调试过程
解决方法
自然跟麒麟一样,直接从根本上放置代码进行优化,只是之前陷入误区,已经存在过不进行优化,调试到确认花了点时间。
跟麒麟一样使用volatile,并把运算做到volatile变量操作:
#
更多推荐
所有评论(0)