有的时候看不懂的时候转换一下会比较好看
例:
((RCC_TypeDef*)RCC_BASE)->APB2ENR |=((1)<<3);
就等同于
(*(RCC_TypeDef*)RCC_BASE)).APB2ENR |=((1)<<3);
可以看出在寄存器的操作中操作的是一个普通变量,不是地址变量
综上所述,以下 3 种形式是等价的:
- 结构体变量.成员名。
- (*指针变量).成员名。
- 指针变量->成员名。
博客以代码示例展示寄存器操作,指出在寄存器操作中操作的是普通变量而非地址变量。同时说明结构体变量.成员名、(*指针变量).成员名、指针变量->成员名这三种形式在寄存器操作中是等价的。
有的时候看不懂的时候转换一下会比较好看
例:
((RCC_TypeDef*)RCC_BASE)->APB2ENR |=((1)<<3);
就等同于
(*(RCC_TypeDef*)RCC_BASE)).APB2ENR |=((1)<<3);
可以看出在寄存器的操作中操作的是一个普通变量,不是地址变量
综上所述,以下 3 种形式是等价的:

被折叠的 条评论
为什么被折叠?