为什么Marshal.SizeOf中的char为4个字节?

时间:2012-07-28 06:56:18

标签: c# data-structures

为什么 char Marshal.SizeOf中占用1个字节,而 bool 占用4个字节。不 char 的状态多于 bool

char c = '\x0011';
bool b = true;
Console.WriteLine("char: " + Marshal.SizeOf(c).ToString() + "\n" 
                + "bool: " + Marshal.SizeOf(b).ToString());

//char: 1
//bool: 4

1 个答案:

答案 0 :(得分:3)

你正在研究元帅阶级的成就。试试看看编译器的想法:

 Console.WriteLine("char: " + sizeof(char).ToString() + "\n"
                 + "bool: " + sizeof(bool).ToString());
  

char:2
  布尔:1

Marshal.SizeOf()应用于局部变量不是预期用途。基本思想是为interop创建struct,然后填充的概念变得相关。