union TokenValue
{
char _cval;
int _ival;
double _dval;
};
union TokenValue中数据占用内存的情况如下图所示:
在C#中使用StructLayoutAttribute、LayoutKind以及FieldOffsetAttribute。使用它们的时候必须引用System.Runtime.InteropServices空间。
[StructLayout(LayoutKind.Explicit, Size=8)]
struct TokenValue
{
[FieldOffset(0)]
public char _cval;
[FieldOffset(0)]
public int _ival;
[FieldOffset(0)]
public double _dval;
}