为什么struct在数组中占用更多的内存,然后在字段中求和

时间:2019-07-25 09:44:41

标签: c#

我有一个简单的结构,其字段总和= 10位

public struct TestSTrut
{
    public byte ByteField;
    public bool BoolFieldOne;
    public bool BoolFieldTwo;

    public TestSTrut(byte a, bool b, bool c)
    {

        ByteField= a;
        BoolFieldOne= b;
        BoolFieldTwo= c;
    }

}

现在,如果我将1000个数组放入数组,则数组的大小为3012个字节,这意味着每个结构为3个字节?但是应该是1250个字节吗? (10 * 1000)/ 9。

如果我将1000个字节放入数组中进行比较,则其大小为1012个字节(12个字节用于数组开销)。

我正在x64调试中使用Visual Studio对此进行测试

1 个答案:

答案 0 :(得分:2)

简单的答案:

sizeof(bool) == 1

如果需要更紧凑的存储,则需要编写自己的存储。