[C#]
[StructLayout(LayoutKind.Explicit)]で 全てのメンバ変数に対して明示的に位置を指定となる。
[StructLayout(LayoutKind.Explicit)] unsafe struct ImageData { [FieldOffset(0)] public int Width; [FieldOffset(4)] public int Height; [FieldOffset(8)] public byte* Buf; //※まだフィールドがある場合は注意! // ポインタ型は32bitとは限らない public void Show() { for(int y = 0; y < Height; y++) { for (int x = 0; x < Width; x++) Console.Write("{0,4}", Buf[y * Width + x]); Console.WriteLine(); } } }
ネタ元