怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理

获取结构体成员中每个字段的偏移量

使用Marshal.OffsetOf来查看结构体中每个字段的偏移量:


using System;
using System.Runtime.InteropServices;

public struct ExampleStruct
{
    public byte b; // 1 byte
    public short s; // 2 bytes
    public int i; // 4 bytes
    public long l; // 8 bytes
    public float f; // 4 bytes
    public double d; // 8 bytes
}

class Program
{
    static void Main()
    {
        Type t = typeof(ExampleStruct);
        Console.WriteLine($"Size of ExampleStruct: {Marshal.SizeOf<ExampleStruct>()} bytes");

        Console.WriteLine("Offsets of fields:");
        Console.WriteLine($"b: {Marshal.OffsetOf(t, "b")} bytes");
        Console.WriteLine($"s: {Marshal.OffsetOf(t, "s")} bytes");
        Console.WriteLine($"i: {Marshal.OffsetOf(t, "i")} bytes");
        Console.WriteLine($"l: {Marshal.OffsetOf(t, "l")} bytes");
        Console.WriteLine($"f: {Marshal.OffsetOf(t, "f")} bytes");
        Console.WriteLine($"d: {Marshal.OffsetOf(t, "d")} bytes");
    }
}
posted on 2024-09-07 15:57  超级无敌美少男战士  阅读(32)  评论(0编辑  收藏  举报