如果我创建一个相对较大的结构,我如何计算它在内存中占用的字节数?
我们可以手动完成,但如果结构足够大,那么我们该怎么做呢?是否有一些代码块或应用程序?
为什么我不能在简单的结构上使用sizeof()?
例如:
private struct FloatShortPair
{
public float myFloat;
public short myShort;
};
int size = sizeof(FloatShortPair); //CS0233
Run Code Online (Sandbox Code Playgroud)
错误CS0233:'FloatShortPair'没有预定义的大小,因此sizeof只能在不安全的上下文中使用(考虑使用System.Runtime.InteropServices.Marshal.SizeOf)
MSDN声明:
sizeof运算符只能用于编译时常量的类型.如果收到此错误,请确保可以在编译时确定标识符的大小.如果不能,则使用SizeOf而不是sizeof.
float和short如何编译时间常量?8 /
我正在摆弄从C#调用DLL,并且需要定义我自己的结构.很多文章强制结构的顺序布局
[StructLayout(LayoutKind.Sequential)]
struct Foo ...
Run Code Online (Sandbox Code Playgroud)
所以,我跟着套件,我的程序工作.现在,当我把线路拿出来时,它仍然可以工作.我为什么需要它?