我的结构定义如下:
[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。
关于为什么会发生这种情况,我似乎找不到任何问题。
有什么建议会有所帮助吗?