比如在 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);
这个组合应该怎么理解呢? |