野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 193|回复: 2

定义结构体类型指针的成员调用问题

[复制链接]
发表于 2019-11-6 16:12:56 | 显示全部楼层 |阅读模式
在观看教程“构建库函数雏形”这一章节提供代码如下:(下面网址)

https://paste.ubuntu.com/p/dQF4DKv7Kf/

我们将GPIOA的地址赋给定义的结构体指针后(
#define GPIOA   ((GPIO_TypeDef *)GPIOA_BASE)
),为什么能保证在调用成员CRL,CRH等时能保证操作的是寄存器的实际物理地址呢?我的疑惑是我们只是将是结构体的首地址对应了呀,在定义结构体时也没有提及成员的地址啊。

希望有人能帮忙解答一下,谢谢。

回复

使用道具 举报

发表于 2019-11-7 10:08:56 | 显示全部楼层
结构体首地址 就是成员1 的地址   结构体成员的大小是已知的   比如成员都是init型成员   然后结构体地址为0   那么成员1 的地址是0   成员2 的地址是4  第三个是8 ...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-7 10:22:01 | 显示全部楼层
wwhh 发表于 2019-11-7 10:08
结构体首地址 就是成员1 的地址   结构体成员的大小是已知的   比如成员都是init型成员   然后结构体地址为 ...

感谢,又看了一下,是我C语言不过关。谢谢你,我懂了。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|联系站长|手机版|站点地图|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 ) 大学生ARM嵌入式2群

GMT+8, 2020-6-5 15:12 , Processed in 0.658841 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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