硬汉嵌入式论坛

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

[Lua] LUA运算符优先级搞错,耽误一晚上

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2023-2-11 01:40:15 | 显示全部楼层 |阅读模式
代码:

[Lua] 纯文本查看 复制代码
readvalue = 0x12345689
FDCAN1_NBTP_NTSEG2 = readvalue & 0x0000007f + 1  

print_hex(FDCAN1_NBTP_NTSEG2)


求出来个0x00000080 ,优先算了0x0000007f + 1  ,然后求与(这个跟C语言是一样的运算优先级)。

image.png

后面按位操作所有运算,还是加个括号靠谱

image.png


回复

使用道具 举报

1

主题

369

回帖

372

积分

高级会员

积分
372
发表于 2023-2-12 00:27:44 | 显示全部楼层
感觉我自己也很自信运算符的优先级,直到今天看到代码里有类似1 % 1 + 1,然后看不懂我自己究竟想干嘛
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2023-2-12 11:34:32 | 显示全部楼层
挖东衣宇 发表于 2023-2-12 00:27
感觉我自己也很自信运算符的优先级,直到今天看到代码里有类似1 % 1 + 1,然后看不懂我自己究竟想干嘛

有时候一些优先级顺序,不怎么用的代码编写写方式,突然用了,确实容易搞错。
回复

使用道具 举报

4

主题

129

回帖

146

积分

初级会员

积分
146
发表于 2023-2-13 15:26:53 | 显示全部楼层
无论是从阅读性和不清楚运算符优先级顺序的角度考虑,都应该提倡善用括号,以免带来无法预料以至于难以排查的问题。
回复

使用道具 举报

8

主题

155

回帖

179

积分

初级会员

H7 TOOL 大法好!

积分
179
发表于 2023-2-13 16:37:14 | 显示全部楼层
我现在 只想着 2.20发布 , 其他都吸引不了我
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2023-2-14 03:21:19 | 显示全部楼层
312456990 发表于 2023-2-13 16:37
我现在 只想着 2.20发布 , 其他都吸引不了我

全力准备中。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 18:20 , Processed in 0.231782 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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