打印
[STM32F1]

请教STM32头文件里宏定义名和变量名是不是重复了?

[复制链接]
1410|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuyagz|  楼主 | 2014-6-30 22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如在 stm32f10x_map.h 头文件里,有下面这样宏定义名和指针变量名相同的:

这里是宏定义
#ifdef _PWR
  #define PWR                 ((PWR_TypeDef *) PWR_BASE)
#endif /*_PWR */
........
下面还有一个指针变量
........
#ifdef _PWR
  EXT PWR_TypeDef             *PWR;
#endif /*_PWR */

按照 #ifdef _PWR 这个条件,这个宏定义名 PWR和下面的指针变量 PWR一样是同时成立的,是不是把上面的宏展开后替换下面的PWR呢?
变成这样吗?
EXT PWR_TypeDef             *((PWR_TypeDef *) PWR_BASE);

这个组合应该怎么理解呢?
沙发
liuyagz|  楼主 | 2014-6-30 22:11 | 只看该作者
还是我理解错了?前面的宏定义是在出现PWR的地方强制把地址PWR_BASE转换成指向结构体PWR_TypeDef的指针;而下面那个指针变量从定义上看也是指向PWR_TypeDef的指针,只是这两个指针的地址不一样?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

20

帖子

1

粉丝