C struct的内存对齐
Posted LarryZeal
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C struct的内存对齐相关的知识,希望对你有一定的参考价值。
说明:如果你看到了这篇,请略过。
struct是复合类型。
其中的成员在内存中的分布都是对齐的。
这个对齐的意思是,struct的sizeof运算结果必定是其最大类型长度的整数倍。
--注意,如果struct内部还有struct的话,应该将内部struct的成员拆开来看。而不应将内部struct看成一个整体成员(该角度仅限于size上)。
由于对齐的原则,成员的顺序会涉及到整体的内存占用。
极其特别的,C支持对struct中的成员指定占用的bit数(注意,是bit,不是byte)--不能超出类型最大bit数。
这种操作在嵌入式开发中非常有用,因为可以充分利用内存。
以上是关于C struct的内存对齐的主要内容,如果未能解决你的问题,请参考以下文章