在 C# 中,我创建了多个不同的结构,其中包含 16 个 bool 类型的变量。我将有几个不同的结构,然后将它们与其他数据类型组合成更复杂的结构。我需要将它们视为 2 个字节的长度。在下面的代码中,当我执行 Marshal.SizeOf 时,创建的类型为 CtrlWord1 的变量的长度将为 64,无论它是使用 0、1 还是 2 的 Pack 值创建的。
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct CtrlWord1
{
public bool a1;
public bool a2;
public bool a3;
public bool a4;
public bool a5;
public bool a6;
public bool a7;
public bool a8;
public bool b1;
public bool b2;
public bool b3;
public bool b4;
public bool c1;
public bool c2;
public bool c3;
public bool c4;
}