日期:2014-05-20  浏览次数:20844 次

求救,如下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
再用位操作计算
------解决方案--------------------
两个字节