Marshal.SizeOf返回值不正确?
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace MarshalTest
{
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    public struct FileInfo_s
    {
        public Int32 mBlockNum; //4 Bytes
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] //32 Bytes
        public char[] mFileName;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 33)] //33 Bytes
        public char[] mMd5;
    };
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo_s fileInfo = new FileInfo_s();
            Console.WriteLine(Marshal.SizeOf(fileInfo)); //72 ?
        }
    }
}
很奇怪为什么输出的是72个字节,而不是4+32+33 = 69个字节?
              
                  struct
                  Marshal
              
------解决方案--------------------内存对齐
http://bbs.csdn.net/topics/280068138
------解决方案--------------------http://blog.csdn.net/wyqlxy/article/details/6608819