如何在C#中模拟C++的联合(union)

来源:互联网 发布:java ftp客户端源代码 编辑:程序博客网 时间:2024/06/05 07:30
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;}



1 0
原创粉丝点击