硬汉嵌入式论坛

 找回密码
 立即注册
查看: 788|回复: 13
收起左侧

写程序时发现只是加了括号 结果就不一样了

[复制链接]

16

主题

27

回帖

75

积分

初级会员

积分
75
发表于 2025-4-28 14:39:19 | 显示全部楼层 |阅读模式
屏幕截图 2025-04-14 221057.png
这2个表达式有什么区别吗


回复

使用道具 举报

14

主题

55

回帖

97

积分

初级会员

积分
97
发表于 2025-4-28 14:46:07 | 显示全部楼层
你只展示了写法,有啥结果?区别在哪?
回复

使用道具 举报

9

主题

66

回帖

108

积分

初级会员

积分
108
发表于 2025-4-28 15:58:53 | 显示全部楼层
首先没赋初值,结果可能随机;其次,看编译大小,一般来说应该一样。
回复

使用道具 举报

16

主题

27

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2025-4-28 16:02:05 | 显示全部楼层
刘心武 发表于 2025-4-28 14:46
你只展示了写法,有啥结果?区别在哪?

屏幕截图 2025-04-28 155706.png 屏幕截图 2025-04-28 155730.png UpPositon初值是2
回复

使用道具 举报

6

主题

268

回帖

286

积分

高级会员

积分
286
发表于 2025-4-28 16:09:38 | 显示全部楼层
你看下汇编代码不就知道了么,看你后边的代码,*10,*2,是有区别的,不加括号,后边会直接优化*20,因为都是常量,如果加了括号,后边就不会优化,但取决于你的优化等级,不管优化和不优化结果应该都是正确的才对。
回复

使用道具 举报

16

主题

27

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2025-4-28 16:11:25 | 显示全部楼层
fxyc87 发表于 2025-4-28 16:09
你看下汇编代码不就知道了么,看你后边的代码,*10,*2,是有区别的,不加括号,后边会直接优化*20,因为都 ...

没优化
回复

使用道具 举报

16

主题

27

回帖

75

积分

初级会员

积分
75
 楼主| 发表于 2025-4-28 16:34:10 | 显示全部楼层
fxyc87 发表于 2025-4-28 16:09
你看下汇编代码不就知道了么,看你后边的代码,*10,*2,是有区别的,不加括号,后边会直接优化*20,因为都 ...

屏幕截图 2025-04-28 163134.png 对汇编部分,不太了解
回复

使用道具 举报

24

主题

195

回帖

267

积分

高级会员

积分
267
QQ
发表于 2025-4-28 19:19:43 | 显示全部楼层
songsong 发表于 2025-4-28 16:34
对汇编部分,不太了解

这俩汇编长得一样的,keil 的 bug 吧,断点打的不是显示位置。你上下换个顺序试一下。

没啥区别,赋值的时候隐式强制转换成 float ,其实没啥问题,但是涉及到类型转换还是显式手写一下比较好。
回复

使用道具 举报

4

主题

189

回帖

201

积分

高级会员

积分
201
发表于 2025-4-29 09:07:47 | 显示全部楼层
egoistaw 发表于 2025-4-28 15:58
首先没赋初值,结果可能随机;其次,看编译大小,一般来说应该一样。

正解,局部变量没赋初始值,就是随机值
回复

使用道具 举报

3

主题

53

回帖

62

积分

初级会员

积分
62
发表于 2025-4-29 09:34:11 | 显示全部楼层
加个volite或者计算以后打印一下
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2025-5-3 08:03:45 来自手机 | 显示全部楼层
安卓手机版.apk: https://url77.ctfile.com/f/64040077-1496896297-fa96a4?p=2025 (访问密码: 2025) http://u5a.cn/gehtW  电脑版1.exe: https://url77.ctfile.com/f/64040077-1496896366-e058b5?p=2025 (访问密码: 2025) http://u5a.cn/VMtZw
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2025-5-3 08:04:05 来自手机 | 显示全部楼层
xdbjbsjjbdjbxx
回复

使用道具 举报

0

主题

28

回帖

28

积分

新手上路

积分
28
发表于 2025-5-6 09:07:25 | 显示全部楼层
你第一次计算后结果没有使用就进行了第二次计算赋值,是不是第一次计算赋值被优化了,你在第一次计算后面添加个表达式用一下numberofturns试试
回复

使用道具 举报

11

主题

108

回帖

146

积分

初级会员

积分
146
发表于 2025-5-6 11:42:00 | 显示全部楼层
Zhyolo 发表于 2025-5-6 09:07
你第一次计算后结果没有使用就进行了第二次计算赋值,是不是第一次计算赋值被优化了,你在第一次计算后面添 ...

正解!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-9 19:12 , Processed in 0.302445 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表