请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 426|回复: 3
收起左侧

stm32 返回的结构体指针中"元素"地址出现改变

[复制链接]

7

主题

5

回帖

26

积分

新手上路

积分
26
发表于 2025-1-6 11:56:43 | 显示全部楼层 |阅读模式
本帖最后由 hu25886 于 2025-1-6 13:36 编辑

如图, 利用函数取一个结构体数组中的某一个元素的指针,发现  gas_0p1lel 及之后的地址不一致,没想明白是什么原因。

求指教




回复

使用道具 举报

7

主题

5

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2025-1-6 13:44:48 | 显示全部楼层
上述问题见图,见附件。
微信截图_20250106134219.png
回复

使用道具 举报

7

主题

5

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2025-1-6 14:06:08 | 显示全部楼层
推测是字节对齐引起的,尝试以下方式:
1、结构体定义时,将长度长的放前面;
2、强制结构体 1 字节对齐;

上述2种,结果都是ok。

还是不理解原因:指针取的就是全局变量的地址,为什么指针和全局变量的“排布不一样”???

微信截图_20250106134219.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
114092
QQ
发表于 2025-1-7 07:30:16 | 显示全部楼层
hu25886 发表于 2025-1-6 14:06
推测是字节对齐引起的,尝试以下方式:
1、结构体定义时,将长度长的放前面;
2、强制结构体 1 字节对齐 ...

可以考虑设置优化为NONE,不知道是不是也正常。

楼主方便的话,将这部分代码复制出来下,我在IAR9.3x上试试


回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-2-19 23:16 , Processed in 0.484133 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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