[StructLayout(LayoutKind.Explicit, Size = )] public struct TypeTransform { [FieldOffset()] public float f; [FieldOffset()] public int i; [FieldOffset()] public double d; [FieldOffset()] public long l; //[FieldOffset(0)] //public byte b1; //[FieldOffs
#include <iostream> using namespace std; union un { int a[7]; double b; char c[10]; int d[3]; }; void main() { cout<<sizeof(un)<<endl; } 输出为32. union(共用体)的各个成员是以同一个地址开始存放的,每一个时刻只可以存储一个成员,这样就要求它在分配内存单元时候要满足两点: 1.一般而言,共用体类型实际占用存储空间为其最长的成员