求救,如下c语言结构体,如何用C#实现?
typedef struct
{
unsigned short :10;
unsigned short a:1;
unsigned short b:2;
unsigned short c:1;
unsigned short d:1;
}xxx;
谢谢!
------解决方案--------------------public struct Book
{
public decimal price;
public string title;
public string author;
}
------解决方案--------------------似乎不能这么定义,只能按照传统方法去转换了
------解决方案--------------------public struct xxx
{
public ushort a ;
public ushort b ;
public ushort c ;
public ushort d ;
public void Init()
{
a = 1;
b = 2;
c = 3;
d = 4;
}
}
------解决方案--------------------声明后调用Init进行初时化
------解决方案--------------------楼上,那东西不是初始值……
------解决方案--------------------好像是不能那么定义,可是为什么篇要一模一样地 "翻译 "呢?
------解决方案--------------------public struct xxx
{
//变量声明
//初始化
};
------解决方案--------------------using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Explicit)]
public struct xxx
{
[FieldOffset(0)]
private ushort tem;
[FieldOffset(10)]
public ushort a ;
[FieldOffset(11)]
public ushort b ;
[FieldOffset(13)]
public ushort c ;
[FieldOffset(14)]
public ushort d ;
}
刚才的是错误的,但这次也不保证正确呀!:)
------解决方案--------------------这样的定义是位定义
xxx是15个位 就是两个自己
你可以定义成一ushort
再用位操作计算
------解决方案--------------------两个字节