| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1145 人关注过本帖
标题:运算优先级
只看楼主 加入收藏
ming561
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-12-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
运算优先级
flag = DATA_SAVE_BUFF_LEN - write_flash_num  + (PAGE_SIZE >> 2);
运算时没有先算括号里的
有警告: Operator '<<' has lower precedence than '+'; '+' will be evaluated first
搜索更多相关主题的帖子: Operator first 运算 优先级 括号 
2021-12-13 10:53
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
收藏
得分:5 
图片附件: 游客没有浏览图片的权限,请 登录注册

运算符优先级一般是编写编译器的时候需要重点关注的问题。
写普通程序建议尽量在容易产生歧义的地方加上括号,这样读者更清晰易懂。
2021-12-13 11:18
ming561
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-12-13
收藏
得分:0 
回复 2楼 diycai
我已经加上括号了呀
2021-12-13 13:16
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
收藏
得分:15 
回复 3楼 ming561
宏定义PAGE_SIZE  加括号了吗?
比如 #define PAGE_SIZE     256+256
那么 PAGE_SIZE >> 2 就等于 256+256>>2 而不是 (256+256)>>2, 虽然两者是一样的。
但是如果你用 PAGE_SIZE * 2,那么结果就不一样了。
2021-12-13 13:23
ming561
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-12-13
收藏
得分:0 
回复 4楼 diycai
傻了,是我宏定义也有移位,没加括号
2021-12-13 13:40
快速回复:运算优先级
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015647 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved