为什么在C#中bool数据类型的大小只有1位?

use*_*287 23 c# byte types boolean bit

我只是学习C#并深入研究数据类型.

为什么bool数据类型不是1位?

它似乎只能保存两个值中的一个(真或假),那么只占用1位空间来表示该值吗?

是因为这篇文章中提到的值的最小'可寻址'大小是一个字节(8位)?

我的总体目标是在逻辑上设想C#中每种数据类型的不同大小,所以我试图创建一个包含所有数据类型及其分配位大小的列表,这让我感动.

Ste*_*ove 23

是因为值的最小"可寻址"大小是一个字节

是的,完全一样的事情.为了使CLR高效,它将其数据类型映射到本机机器数据类型,其方式与编译器在C++中的方式非常相似(相当多).