例如这个结构体:
struct
{
  byte bt;
  int i;
  short s;
}

解决方案 »

  1.   

    long :   8
    int  :   4
    Serializable]
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1,Size=29)]
            struct aa
            {
                public Byte a;
                public int b;
            }
    http://topic.csdn.net/u/20081112/18/7ed6b1c4-c6da-4a15-847b-e2172510a181.html
      

  2.   

    Sequential 用于强制将成员按其出现的顺序进行顺序布局
    Pack 控制类或结构的数据字段在内存中的对齐方式。StructLayoutAttribute.Pack 字段
        [StructLayout(LayoutKind.Sequential,Pack=1)]
        public struct MyStruct
        {
            public byte bt;
            public int i;
            public  short s;
        }
      

  3.   

    #pragma pack(n) 用这个函数改变他的对齐系数
      

  4.   

    #pragma pack(n) 用这个函数改变他的对齐系数这个是C的啊,我想要的是C#的