我的代码中有这个结构:
struct BlockDescriptor
{
struct BlockDescriptor * pNext;
bool _isFree;
};
我倾向于相信它的大小是 4 + 1 = 5 (4 代表指针和1
)bool
,但由于某种原因sizeof(struct BlockDescriptor)
返回 8 !有人能告诉我为什么吗?
是因为包装问题,5 被四舍五入为 4 的倍数(因为 32 位是大多数计算机最熟悉的),是否有某种方法可以强制它使用真实大小(如果这实际上是真实的尺寸) ?