あり、私が読んでいるいくつかのコードだと、それの一部である:私はそれだけでバイト配列にユニットの位置に4つのバイトを入れているが、私はどのように明確ではないんだということを理解固定ポインタ文?
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;
}
。
それの私の理解では、ということです。
(uint*)pbyte
がUINTポインタにPBYTEのアドレスをキャストし、
(byte* pbyte = buff)
を作成し、バフのアドレスを指すバイトポインタPBYTEを返します?、
私はそれ以外の部分は理解していません。固定キーワードの使い方は?
(byte* pbyte = buff) = (byte*)value;
ありがとう、それはそれをクリアします。私は宣言が式の一部であると思った。 – mowwwalker
@Walkerneo:正直言って、それも私を最初に投げ入れた。私は(それを考えていると思うが)私はC#に精通している。私はその行を二度見なければならなかったが、スペースがないとそれはかなり醜い。 –