我试图使用sizeof运算符检查所有变量(值类型)的大小.我通过一个走了MSDN文章,里面写到那
对于所有其他类型(包括结构),sizeof运算符只能用于不安全的代码块
并且结构不应包含任何引用类型的字段或属性
为此,我在项目属性中启用了不安全的编译,并创建了如下结构 -
struct EmployeeStruct
{
int empId;
long salary;
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式使用 -
unsafe
{
size = sizeof(EmployeeStruct);
}
Console.WriteLine("Size of type in bytes is: {0}", size);
Run Code Online (Sandbox Code Playgroud)
在这里我得到输出,因为字体大小是16:但是通过查看结构它应该是12(4表示int,8表示长).有人可以帮我理解为什么我得到4字节的额外大小?