我的结构定义如下:
[StructLayout(LayoutKind.Explicit, Size = 10)]
public struct AudioSampleInfo
{
[FieldOffset(0)]
public ushort AudioBitPerSample;
[FieldOffset(2)]
public ushort AudioNumChannels;
[FieldOffset(4)]
public ushort AudioType;
[FieldOffset(6)]
public uint AudioSampleRate;
}
但是,在执行期间,这些值似乎发生了变化。似乎内存中分配的字节数组似乎是重叠的。
在程序执行期间,我们将值设置为:
AudioSampleInfo audioInfo = new AudioSampleInfo();
audioInfo.AudioBitPerSample = 16;
audioInfo.AudioNumChannels = 1;
设置后AudioNumChannels
,值AudioBitsPerSample
变为 272。
我似乎找不到任何关于为什么会发生这种情况的问题。
任何的意见都将会有帮助 ?