你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

各位大哥帮我看看,关于结构指针强制转换为整型指针的...

[复制链接]
xunlizhan 提问时间:2017-8-20 21:48 /
捕获.JPG 为什么不是a=0x0201;b=0x0403;c=0x0605 ?问题出在哪里?
收藏 评论8 发布时间:2017-8-20 21:48

举报

8个回答
wenyangzeng 回答时间:2017-8-20 22:04:25
你那个test_t结构中,应该将uint16_t a45放在最上面,让数据对齐。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

andeyqi 回答时间:2017-8-20 22:46:52
应该是你结构体对齐的原因造成的,test_t结构体在内存中的布局应该是这样的{0x01,0x02,0x03,0x00,0x04,0x05,0x06,0x00}造成的.

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

andeyqi 回答时间:2017-8-20 22:48:03
默认应该是四字节对其的
Inc_brza 回答时间:2017-8-21 01:09:55
本帖最后由 Inc_brza 于 2017-8-21 01:14 编辑

结构体会对结构体内元素最大的做对齐单元(未使用对齐指令), 然后你这玩意是小端格式的,所以出现这样的结果

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

xunlizhan 回答时间:2017-8-21 06:31:56
明白了,谢谢各位!
LoveMCU001 回答时间:2017-8-21 11:11:18
结构型指针uint16 *应该是偶数对齐的,每个变量的起始地址应该是偶数
toofree 回答时间:2017-8-21 11:43:20
楼上几层都解释过了,你可以看一下结构体内部各元素的地址是多少
没事逛荡 回答时间:2017-8-22 09:19:57
或者强制1字节对齐

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版