[AVR单片机] 为什么用移位,不用直接赋值?

[复制链接]
4739|4
 楼主| jijintao 发表于 2007-6-13 16:13 | 显示全部楼层 |阅读模式
我是初学者,看一个例程,里面开串口中断、串口收发使能是这么写的:UCR = (1<<TXEN)|(1<<RXCIE)|(1<<RXEN);
请问这里为什么不直接赋值,而要用移位,然后取或呢??
coldra 发表于 2007-6-13 16:18 | 显示全部楼层

其实移位运算没有占用指令

编译器编译时自动变成直接赋值,这样写对于编程者来说容易看懂和修改,不必查手册看第几位准确为什么意义,干巴巴的16进制数字可读性差。
zhiwei 发表于 2007-6-14 08:36 | 显示全部楼层

这些都是常数

编译的时候都计算出来了。
ayb_ice 发表于 2007-6-14 09:13 | 显示全部楼层

菜鸟。。。

 楼主| jijintao 发表于 2007-6-14 12:27 | 显示全部楼层

谢谢!

谢谢各位的回复!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

11

帖子

1

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