说明:如果你看到了这篇,请略过。
struct是复合类型。
其中的成员在内存中的分布都是对齐的。
这个对齐的意思是,struct的sizeof运算结果必定是其最大类型长度的整数倍。
--注意,如果struct内部还有struct的话,应该将内部struct的成员拆开来看。而不应将内部struct看成一个整体成员(该角度仅限于size上)。
由于对齐的原则,成员的顺序会涉及到整体的内存占用。
极其特别的,C支持对struct中的成员指定占用的bit数(注意,是bit,不是byte)--不能超出类型最大bit数。
这种操作在嵌入式开发中非常有用,因为可以充分利用内存。
时间: 2024-10-08 08:34:32