2017年11月14日火曜日

C#で共用体(union)を利用する

C#で共用体(union)を利用する


「C#で共用体(union)を利用する」と書いたけれども、C#には、共用体がありません。
属性(StructLayoutとFieldOffset)を駆使して記載します。



[StructLayout(LayoutKind.Explicit)]struct BitData{
    [FieldOffset(0)]    public byte Data0;
    [FieldOffset(1)]    public byte Data1;
    [FieldOffset(2)]    public byte Data2;
    [FieldOffset(3)]    public byte Data3;
    [FieldOffset(0)]    public UInt32 Data;}



LayoutKind.Explicitを指定することで、
フィールド内のFieldOffsetが使用可能になります。



0 件のコメント:

コメントを投稿