可能重複:
How to check the number of bytes consumed by my Structure?獲取結構的大小在C#
我在
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct test
{
public int a;
public uint16 b;
}
的包裝方式的結構如何獲得大小作爲編譯器的結構聲明sizeof只能在不安全的上下文中使用?
謝謝。
可能重複:
How to check the number of bytes consumed by my Structure?獲取結構的大小在C#
我在
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct test
{
public int a;
public uint16 b;
}
的包裝方式的結構如何獲得大小作爲編譯器的結構聲明sizeof只能在不安全的上下文中使用?
謝謝。
您將sizeof運算符置於不安全的上下文中,就像編譯器建議的那樣?
像這樣的東西我想:
int size;
unsafe
{
size=sizeof(Test);
}
但我不知道,如果你真的想這樣做。我傾向於使用普通的序列化器而不是具有特定佈局的結構。國際海事組織你應該使用這種結構只用於本地互操作,而不是簡單的序列化。
然後看看SizeOf
函數編組的文檔也可能會混淆大小(不是在這個例子中)。
SizeOf
方法會訣竅。
int size = System.Runtime.InteropServices.Marshal.SizeOf(typeof(Point));
你需要什麼? – 2011-02-10 11:23:03
我需要通過網絡發送它。我得到的API需要我指定結構的字節包括頭+數據等 – Nick 2011-02-10 11:24:12
看看http://stackoverflow.com/questions/2418749/c-why-sizeof-is-unsafe-and-how在一個安全的方式結構的大小 – Ray 2011-02-10 11:26:30