public struct TestStruct
{
public int first;
public int second;
public int third;
}
Marshal.SizeOf は 12 を返します。これは、int がそれぞれ 4 バイトであるため、私が想定しているものです。3 番目を int ではなく double に変更すると、Marshal.SizeOf が 16 を返すことが期待されます。しかし、4 つ目の double を追加すると、Marshal.SizeOf は 24 を返しますが、20 を期待していました。しかし、3 int の後に double を追加すると、サイズが期待どおりになりません。
public struct TestStruct //SizeOf 12
{
public int first;
public int second;
public int third;
}
public struct TestStruct //SizeOf 16
{
public int first;
public int second;
public double third;
}
public struct TestStruct //SizeOf 24, but I feel like it should be 20
{
public int first;
public int second;
public double third;
public int fourth;
}
私の考えはどこで私を迷わせたのですか?