【发布时间】:2011-02-14 11:51:22
【问题描述】:
我有 C# 背景。我是 C 等低级语言的新手。
在 C# 中,struct 的内存默认由编译器布局。编译器可以重新排序数据字段或隐式填充字段之间的附加位。因此,我必须指定一些特殊属性来覆盖此行为以实现精确布局。
AFAIK,默认情况下,C 不会重新排序或对齐 struct 的内存布局。但是,我听说有一个很难找到的小例外。
什么是 C 的内存布局行为?什么应该重新排序/对齐而不是?
【问题讨论】:
标签: c struct memory-layout