C++ 中:
#define  MAX_INFO_LEN 32
typedef struct
{
BYTE uCode ;//信息码
BYTE uFloat:1 ;//1=float型,0=无符号数
BYTE uLen:7 ;//信息内容长度
BYTE uInfo[ MAX_INFO_LEN ] ;//信息内容
}OneInfo_t ;c#中的结构体该怎么写? 粗体部分在C#中怎么体现??由于C++程序采用了内存紧凑方式,C#中会不会产生同一个结构体但是占用内存空间不一样的问题?

解决方案 »

  1.   

    UP, 既然1=float型, 那就直接定义成float型试试.
      

  2.   

    //C# 中:
    //#define MAX_INFO_LEN 32
    struct OneInfo_t
    {
    byte uCode ;//信息码
    byte uFloat=1 ;//1=float型,0=无符号数
    byte uLen=7 ;//信息内容长度
    byte uInfo[]=new byte[32] ;//信息内容
    }  
    呵呵
      

  3.   

    c#不支持位域
    可以参考MSDN:http://msdn.microsoft.com/zh-cn/library/yyaad03b(VS.80).aspx有一种方法解决:
    http://topic.csdn.net/t/20030531/22/1860471.html
      

  4.   

    用enum+FlagsAttribute来做  这个方法很不错
      

  5.   

    http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120