Marshal.SizeOf().
的定义如下:The size returned is the size of the unmanaged object. The unmanaged and managed sizes of an object can differ.
这是否意味着Marshal.SizeOf会返回您的定义大小,但不会返回实际的memeory分配的大小,因为可能有一些用于对齐的填充?C#非托管对象的大小是多少?
例如:
struct MyStruct
{
char c;
}
大小将是非托管对象(非托管尺寸)1个字节,如果我使用Marshal.SizeOf()
也可以是用于被管理对象(管理的大小)2或4个字节,如果我使用sizeof(
) 。我对吗?