我想把这个结构作为参数传递给一个PInvoke函数,有两种方式可以定义这个结构。我想知道这两种方式之间的区别。
[StructLayout(LayoutKind.Sequential)]
public struct Rect {
public int left;
public int top;
public int right;
public int bottom;
}
[StructLayout(LayoutKind.Explicit)]
public struct Rect {
[FieldOffset(0)] public int left;
[FieldOffset(4)] public int top;
[FieldOffset(8)] public int right;
[FieldOffset(12)] public int bottom;
}
根据我在这里找到的布局定义,两者在内存中不应该看起来相同吗?是否有一个比另一个更好的优势?