有一些代碼,我閱讀和部位是:固定的指針語句?
public static unsafe byte[] GetBytes(uint value, bool BigEndian)
{
byte[] buff = new byte[4];
fixed (byte* pbyte = buff)*((uint*)pbyte) = value;
if (BigEndian)
buff.EndianConvert();
return buff;
}
據我所知,它只是把4個字節的單元的位置到字節數組,但我不清楚如何。
我對它的理解是:
(byte* pbyte = buff)
創建並返回一個字節的指針PBYTE,它指向的buff的地址,
(uint*)pbyte
施放PBYTE的地址轉換爲UINT指針?,
我不明白,雖然它的其餘部分。固定關鍵字有什麼用處?爲什麼不能這樣做:
(byte* pbyte = buff) = (byte*)value;
謝謝,這清除了它。我以爲這個聲明是表達的一部分.. – mowwwalker 2011-12-29 04:52:17
@Walkerneo:說實話,它最初也把我扔了,而我(喜歡這樣認爲)我非常精通C#。我不得不在這條線上看兩次,缺乏空間使它非常難看。 – 2011-12-29 08:27:38