作者cole945 (躂躂..)
看板C_Sharp
标题Re: [问题] 关於C#结构指标问题
时间Mon Jul 9 00:53:02 2007
※ 引述《sky777 (...)》之铭言:
: 在C++可以用
: #pragma pack(push,1)
: #pragma pack(pop)
: 来让编译器对齐位置(如char就分配1个byte空间而不会是4个byte)
: 那C#里如何设定?? 刚刚试了一下似乎不支援这样写^^b"
C#不能用C++的语法不是很正常吗o_O"
Structs Tutorial
http://msdn2.microsoft.com/en-us/library/aa288471(vs.71).aspx
这要用 LayoutKind.Explicit 配上 FieldOffset Attribute~
像是msdn上举的一个像C/C++上Union的例子~
[StructLayout(LayoutKind.Explicit)]
struct TestUnion
{
[FieldOffset(0)]
public int i;
[FieldOffset(0)]
public double d;
[FieldOffset(0)]
public char c;
[FieldOffset(0)]
public byte b1;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.136.137