C++代码Linux运行结果和Windows不同
最近在测试过程中发现Windows下面的运行结果和Linux下面的运行结果不一致,windows下测试通过,但Linux结果不对,在检查输出数据以及代码之后,并没有发现不同之处,后面想到abs(), min(), max()等函数在不同编译环境下其作用可能不同,更改后问题得到解决。
比如:
std::abs()包括std::abs(int), std::abs(float), std::abs(long long)等,但abs()有可能只有abs(int)一种形式,导致abs(float)返回的值永远为0
原因
在代码中有一句是abs(threshold)
, 其中threshold为double类型,在Windows下正常转换了,但在Linux下结果一直为0,导致错误。
解决措施
将abs()
更改为std::abs()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端