public unsafe void WriteInt64(long value) //C# Code
{
fixed (byte* ptr = m_buffer)
{
*(long*)(ptr) = value;
}
}
在上面的代码中,该值被直接分配给指针。我想知道这段代码是否可以实现与字节序无关的代码,否则,它的正确性如何?
另一种表达方式是 在这里-https://stackoverflow.com/a/24620105/413306,memcpy方法中的指针复制如何实现与字节序无关的代码?
答案 0 :(得分:1)
您唯一能做的就是看BitConverter.IsLittleEndian
表示存储数据的字节顺序(“字节序”) 这种计算机体系结构。
然后将所需的字节序状态传递给您的函数,函数知道您的m_buffer
最终在哪台计算机上。
如果所需的状态和您当前的体系结构不同,则必须进行切换