各位大哥帮我看看,关于结构指针强制转换为整型指针的...
为什么不是a=0x0201;b=0x0403;c=0x0605 ?问题出在哪里?你那个test_t结构中,应该将uint16_t a45放在最上面,让数据对齐。 应该是你结构体对齐的原因造成的,test_t结构体在内存中的布局应该是这样的{0x01,0x02,0x03,0x00,0x04,0x05,0x06,0x00}造成的. 默认应该是四字节对其的 本帖最后由 Inc_brza 于 2017-8-21 01:14 编辑
结构体会对结构体内元素最大的做对齐单元(未使用对齐指令), 然后你这玩意是小端格式的,所以出现这样的结果 明白了,谢谢各位! 结构型指针uint16 *应该是偶数对齐的,每个变量的起始地址应该是偶数 :)楼上几层都解释过了,你可以看一下结构体内部各元素的地址是多少 或者强制1字节对齐
页:
[1]