关于结构体字节对齐问题?

2019-07-20 05:36发布

在C语言编程中,可以把结构体都用伪指令进行1个字节数据对齐吗,因为这种更省内存,程序如下图:
                                    12.png


但是在单片机中看的程序,大家都用4个字节对齐的方式,如下:
                                  323.png
请问这个是什么原因,各位达人可以帮忙解答一下吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
sammy902583
1楼-- · 2019-07-20 05:45
 精彩回答 2  元偷偷看……
edmund1234
2楼-- · 2019-07-20 11:37
当读写不对齐short或int类型变量时会报错(产生HardFault_Handler异常)
mhsdsa
3楼-- · 2019-07-20 12:16
着个问题应该注意,谢谢楼主的分享
HCHDaLeiGe
4楼-- · 2019-07-20 13:12
 精彩回答 2  元偷偷看……
刺客_奋斗的菜鸟
5楼-- · 2019-07-20 15:36
HCHDaLeiGe 发表于 2018-10-20 08:21
平台特性,为了保证跨平台不出问题,尽量都使用4字节对齐,有些平台甚至需要8字节对齐

我说的都把结构体一个字节对齐应该是以时间换空间;如果4个字节对齐,是以空间换时间,这种理解对吗?
刺客_奋斗的菜鸟
6楼-- · 2019-07-20 18:19
sammy902583 发表于 2018-10-20 09:20
有时候是为了Bus宽度/Cache line的关系, 对齐4 byte or 8 byte, 会让存取速度变快.
另一方面也可能是为了m ...

嗯,好的,谢谢!

一周热门 更多>