928| 3
|
[已解决]union共同体内存问题 |
1鱼币
最佳答案首先一个union为4字节,
所以你的另外两个字符型为了对齐在内存中应该占一个字(只不过高字节都是00)
就比如:存一个int类型的是 00 00 00 0D
而按照两次char类型存入则变成了 00 00 00 0D
所以你读出来是13,而按照两个char读则读出来分别是00 0D
也可以换测试值,比如a.i = 0x0A0B0C0D;
这时候你读两个char稍有不同,会直接读取到0D和0C
但是存两个字符则为了填满4字节会按照两个字来算
如a.ch[0] = 1; a.ch[1 ] ...
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2020-7-6 23:32:49
|
显示全部楼层
本楼为最佳答案
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)
GMT+8, 2025-1-13 13:53
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.