结构如何保存在内存C中

时间:2015-01-25 11:49:42

标签: c windows

C中的结构如何保存在内存中?

为什么有时内存中的结构长度更大 比预期?

2 个答案:

答案 0 :(得分:2)

这称为data structure alignment

虽然不是完美的重复,但您可以在Structure padding and packing

的C中找到对此的详细解释

答案 1 :(得分:0)

  • 结构存储为声明包含的变量的串联。
  • 变量按声明的顺序存储。 struct的开头地址是它包含的第一个变量的开头的地址。
  • 结构内存布局中的其余变量之间可能存在间隙(甚至在结构的末尾)。这是针对align the variables to memory addresses完成的,可以从中获取它们。
    • 某些架构只能获取对齐的数据。
    • 大多数可以获取未对齐数据的体系结构在执行此操作时会受到性能损失。