为什么 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
答案 0 :(得分:3)
你正在研究元帅阶级的成就。试试看看编译器的想法:
Console.WriteLine("char: " + sizeof(char).ToString() + "\n"
+ "bool: " + sizeof(bool).ToString());
char:2
布尔:1
将Marshal.SizeOf()
应用于局部变量不是预期用途。基本思想是为interop创建struct
,然后填充的概念变得相关。