哪位大佬帮忙解释一下怎么看这段程序,看不懂啊!

将就点 2005-12-20 10:05:16
#define bwMCDR2_ADDRESS 4
#define bsMCDR2_ADDRESS 17
#define bmMCDR2_ADDRESS BIT_MASK(MCDR2_ADDRESS)
#define BIT_MASK(__bf) (((1U << (bw ## __bf)) - 1) << (bs ## __bf))
#define SET_BITS(__dst, __bf, __val) \
((__dst) = ((__dst) & ~(BIT_MASK(__bf))) | \
(((__val) << (bs ## __bf)) & (BIT_MASK(__bf))))

SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber);

...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
将就点 2005-12-20
  • 打赏
  • 举报
回复
多谢两位,就是看不懂那些符号的意思,
pinel 2005-12-20
  • 打赏
  • 举报
回复
#define 是预定义宏
<<是左移运算符
##是连接符
\是换行符

SET_BITS望文生义就是一个值的某bit位设置一个1或0
piaochen_2002 2005-12-20
  • 打赏
  • 举报
回复
SET_BITS()应该是把某个寄存器的某一个BIT设成BITMASK()的值,也就是让它为0,或者为1,
你的代码贴的不完整.
fiftymetre 2005-12-20
  • 打赏
  • 举报
回复
回复人: SJSHWY(沈风---从C开始) ( ) 信誉:100 2005-12-20 10:37:32 得分: 0



多谢两位,就是看不懂那些符号的意思,



不会去看C++PRIMER啊,好像第一章就有讲的.

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧