OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5390|回复: 1

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

[复制链接]

5

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2012-1-10
在线时间
8 小时
发表于 2014-6-27 15:58:13 | 显示全部楼层 |阅读模式
5金钱
比如在 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);

这个组合应该怎么理解呢?

最佳答案

查看完整内容[请看2#楼]

还是我理解错了?前面的宏定义是在出现PWR的地方强制把地址PWR_BASE转换成指向结构体PWR_TypeDef的指针;而下面那个指针变量从定义上看也是指向PWR_TypeDef的指针,只是这两个指针的地址不一样?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2012-1-10
在线时间
8 小时
 楼主| 发表于 2014-6-27 15:58:14 | 显示全部楼层
还是我理解错了?前面的宏定义是在出现PWR的地方强制把地址PWR_BASE转换成指向结构体PWR_TypeDef的指针;而下面那个指针变量从定义上看也是指向PWR_TypeDef的指针,只是这两个指针的地址不一样?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-6 20:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表