110,538
社区成员
发帖
与我相关
我的任务
分享
typedef struct in6_addr {
union {
u_char Byte[16];
u_short Word[8];
} u;
};
[StructLayout(LayoutKind.Explicit)]
internal struct in6_addr
{
[FieldOffset(0)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] Byte;
[FieldOffset(0)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public ushort[] Word;
}
unsafe static void Main(string[] args)
{
//生成点数据测试用
byte* data = stackalloc byte[16];
for (byte i = 0; i < 16; ++i)
data[i] = i;
in6_addr ip6;
ip6 = (in6_addr)Marshal.PtrToStructure(new IntPtr(data), typeof(in6_addr));
Console.WriteLine(ip6.Byte.Length);
}
[StructLayout(LayoutKind.Explicit)]
unsafe internal struct in6_addr
{
[FieldOffset(0)]
public fixed byte Byte[16];
[FieldOffset(0)]
public fixed ushort Word[8];
}