我在使用C#创建的文件中存在数据对齐问题,以便在旧版应用中使用。
我将所有数据存储为结构列表。
List<CParameterItem> m_Items = new List<CParameterItem>();
CParameterItem的样子:
[StructLayout( LayoutKind.Sequential,Pack = 2 )]
public struct CParameterItem
{
public byte ParamID;
public ushort Size;
public byte[] Data;
}
当我尝试迭代集合并将它们写入文件时,我在每个项目之间存在字节对齐问题(每个结构中的字节对齐是正确的)。
BinaryWriter bw = new BinaryWriter( File.Open( theFilename, FileMode.CreateNew ) );
foreach ( CParameterItem param in m_Items )
{
bw.Write( param.ParamID );
bw.Write( param.Size );
bw.Write( param.Data );
}
bw.Close();
如何理清物品之间的包装?非常感谢。