[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public class SMALL_PACKET
{
public byte onoff;
public short trig_lv;
public byte fileter_min;
public byte filter_max;
public byte sensor_type;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct BIG_PACKET
{
public int packettype;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public SMALL_PACKET[] ch;
}
이렇게 선언하고
int nn = Marshal.SizeOf(typeof(SMALL_PACKET));
하면은 6이 나옵니다.
그런데 아래와 같이 하면,
int ns = Marshal.SizeOf(typeof(BIG_PACKET));
28이 나와야 하는것 아난가여?
값이 이상하게 나오고 있습니다.
혹시 제가 잘못 알고 있는것인지요?
이것을 해결하기 위해서 어떻게 해야 되는지 알려주시면 감사하겠습니다.