为什么布尔值不是位表类型?

时间:2018-11-26 13:11:28

标签: .net memory types interop

在阅读MSDN docs about bittable types时,我看到布尔值不是位表的(在托管和非托管内存之间转换值时会发生一些转换)。

给出了以下描述:

  

转换为1、2或4字节值,且true为1或-1。

考虑到布尔值不可为空,这使它们成为二进制值。在我看来,这意味着它们需要1“位”的存储空间。为什么我们会有一个4字节(32位)大小的布尔值?

第二,如果true可以为1或-1,我认为这意味着false可以为0,什么也没有?为什么我们要像这样使用布尔值而不是使用单个二进制值(位)来存储布尔值?

0 个答案:

没有答案