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

2019-07-14 18:07发布

比如在 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);

这个组合应该怎么理解呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
TOPCB
1楼-- · 2019-07-15 05:27
EXT 请看一下这个的定义,这里是如果没有定义PWR,定义PWR,如果定义了。就EXT声明一下。
mmwurwer
2楼-- · 2019-07-15 05:29
 精彩回答 2  元偷偷看……
mmwurwer
3楼-- · 2019-07-15 07:24
回复第 3 楼 于2014-07-01 11:31:14发表:
EXT 请看一下这个的定义,这里是如果没有定义PWR,定义PWR,如果定义了。就EXT声明一下。 

额不好意思,是我粗心看错了,上面还有一个条件判断:
#ifndef DEBUG
......
#else   /* DEBUG */
..........
这两段定义是不会同时成立的,这样我能理解了
TOPCB
4楼-- · 2019-07-15 12:22
EXT上面有定义是空,还是extern

一周热门 更多>