对齐结构 [英] Struct with alignment
本文介绍了对齐结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一个像这样的结构
Hi have a struct like that
typedef struct ServerState{
WORD Zone;
DWORD Init:1;
DWORD Link:1;
DWORD Spares:30;
WORD Sectors;
}TDeaMapServerState;
如何声明具有DWORD Init之类的维的字段:1;
How can I declare field with dimension like DWORD Init:1;
推荐答案
这应该有效:
This should work:
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct ServerState
{
public ushort Zone;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
public uint[] Init;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
public uint[] Link;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 30)]
public uint[] Spares;
public ushort Sectors;
}
这篇关于对齐结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文