[ARM Linux入门与实践] 关于给IO赋值的问题

[复制链接]
 楼主| katy0094 发表于 2009-9-23 21:21 | 显示全部楼层 |阅读模式
IO, EDA, gp
我想给rGPEDAT的第11和13位置1,看到很多地方都是这么写的:
rGPEDAT = rGPEDAT & (~((1<<13)|(1<<11))) | (1<<13) | (1<<11) ;
我对这种写法的理解是“给第11和13位置1,然后取反再与上rGPEDAT,这样就给第11和13位清零了,最后再将第11和13位置1”
我想这是何必呢?为何不直接rGPEDAT=(1<<13) | (1<<11) ;
所以不理解为什么要这么写?麻烦各位解释一下!
阿南 发表于 2009-9-26 11:59 | 显示全部楼层
可读性的考虑,如果想清0就将1修改成0即可
ma1986 发表于 2009-11-9 16:18 | 显示全部楼层
在这里,他这样写是没必要的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部