Функция создает байтовый массив, который содержит те же двоичные данные, что и целочисленное представление вашей платформы value
. В C ++ это может быть достигнуто (для любого типа) следующим образом:
int value; // or any type!
unsigned char b[sizeof(int)];
unsigned char const * const p = reinterpret_cast<unsigned char const *>(&value);
std::copy(p, p + sizeof(int), b);
Теперь b
- это массив байтов размером с тип int
(или тип, который вы использовали).
В C # вам нужно сказать fixed
, чтобы получить необработанный указатель, поскольку обычно у вас нет необработанных указателей в C # из-за объектов, не имеющих фиксированного расположения в памяти - сборщик мусора может перемещать их в любой время. fixed
предотвращает это и фиксирует объект на месте, так что необработанный указатель может иметь смысл.