首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

ARM中关于字段操作宏定义的有关问题

2013-04-20 
ARM中关于字段操作宏定义的问题在编程stm32f10x时候运用到字段操作#define BITBAND(addr,bitnum) ((addr&0

ARM中关于字段操作宏定义的问题
在编程stm32f10x时候运用到字段操作
#define BITBAND(addr,bitnum) ((addr&0xF0000000)+0x2000000+((addr&0xFFFFF)<<5)+(bitnum<<2))
#define MEM_ADDR(addr)  *((volatile unsigned long *)(addr))
#define BIT_ADDR(addr,bitnum)  MEM_ADDR(BITBAND(addr,bitnum))

在编程时候发现,不加宏定义中括号(红色标记)时候确编程错误,而加了宏定义中的括号确能得到结果
请问宏定义中加括号和不加括号有什么区别?
[解决办法]
涉及到运算符优先级的问题,加与不加括号,运算有天壤之别。
但是个人觉得报警告是必须的,至于报错误这个与编译器有关。

热点排行