#define RCC                 ((RCC_TypeDef *) RCC_BASE)  

 

这一句的意思是RCC是一个指针 , 然后把地址 RCC_BASE 赋给RCC吗?

那为什么为什么RCC没有定义呢。。

以及后面   RCC->RC 的使用  和上面那个定义的联系 跳跃太大了,有点晕了。。

C语言的确不怎么扎实求教了。

 

 

#define RCC   ((RCC_TypeDef *) RCC_BASE),
这个本身就是RCC的定义,这是最基本的宏定义,
RCC_TypeDef是个结构体,有定义,找找看,
RCC_BASE是个数值,具体地说是地址,取决于RCC寄存器在芯片中的实际地址,
((RCC_TypeDef *) RCC_BASE)的意思就是把RCC_BASE这个地址强制转换为RCC_TypeDef 类型的指针,
RCC也就是((RCC_TypeDef *) RCC_BASE),就是指向RCC_BASE的RCC_TypeDef 类型的指针。

 

 

 

RCC是一个宏,它代表文本“ ((RCC_TypeDef *) RCC_BASE)  ”,预编译的时候会把代码中出现的RCC替换为 ((RCC_TypeDef *) RCC_BASE),RCC->RC就是 ((RCC_TypeDef *) RCC_BASE)->RC。了解了C语言的宏和指针后,应该就能理解这些。

更多推荐