нл:: Переплетение:: Кодировка:: LittleEndian

Это пространство имен предоставляет функции для:

Краткое содержание

  • Выполнение переупорядочения байтов относительно хост-системы по значению значений порядка байтов с прямым порядком байтов для 16-, 32- и 64-битных типов.
  • Безопасное выполнение простого и эффективного доступа к отображению в памяти, потенциально к невыровненным областям памяти, с переупорядочением байтов или без него, к 8-, 16-, 32- и 64-битным количествам с прямым порядком байтов, как с управлением указателями, так и без него.

В хост-системах с прямым порядком байтов фактического изменения порядка байтов происходить не будет. В других системах переупорядочение байтов выполняется соответствующим образом.

Функции

Get16 (const uint8_t *p)
uint16_t
Выполните потенциально невыровненное чтение памяти 16-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы.
Get32 (const uint8_t *p)
uint32_t
Выполните потенциально невыровненное чтение памяти 32-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы.
Get64 (const uint8_t *p)
uint64_t
Выполните потенциально невыровненное чтение памяти 64-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы.
HostSwap16 (uint16_t v)
uint16_t
Это условно выполняет, если это необходимо для целевой системы, замену порядка байтов на значение указанного 16-битного значения, предположительно имеющего порядок байтов с прямым порядком байтов для целевой системы (т. е.
HostSwap32 (uint32_t v)
uint32_t
Это условно выполняет, если это необходимо для целевой системы, замену порядка байтов на значение указанного 32-битного значения, предположительно имеющего порядок байтов с прямым порядком байтов для целевой системы (т. е.
HostSwap64 (uint64_t v)
uint64_t
Это условно выполняет, если это необходимо для целевой системы, замену порядка байтов на значение указанного 64-битного значения, предположительно имеющего порядок байтов с прямым порядком байтов для целевой системы (т. е.
Put16 (uint8_t *p, uint16_t v)
void
Выполните потенциально невыровненную запись в память 16-битного значения целевой системы с упорядоченным байтом по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.
Put32 (uint8_t *p, uint32_t v)
void
Выполните потенциально невыровненную запись в память 32-битного значения целевой системы с байтовым упорядочением по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.
Put64 (uint8_t *p, uint64_t v)
void
Выполните потенциально невыровненную запись в память целевого системного 64-битного значения с упорядоченным порядком байтов по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.
Read16 (uint8_t *& p)
uint16_t
Выполните потенциально невыровненное чтение памяти 16-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 16 бит (2 байта).
Read16 (const uint8_t *& p)
uint16_t
Выполните потенциально невыровненное чтение памяти 16-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 16 бит (2 байта).
Read32 (uint8_t *& p)
uint32_t
Выполните потенциально невыровненное чтение памяти 32-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 32 бита (4 байта).
Read32 (const uint8_t *& p)
uint32_t
Выполните потенциально невыровненное чтение памяти 32-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 32 бита (4 байта).
Read64 (uint8_t *& p)
uint64_t
Выполните потенциально невыровненное чтение памяти 64-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 64 бита (8 байт).
Read64 (const uint8_t *& p)
uint64_t
Выполните потенциально невыровненное чтение памяти 64-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 64 бита (8 байт).
Write16 (uint8_t *& p, uint16_t v)
void
Выполните потенциально невыровненную запись в память 16-битного значения целевой системы с упорядоченным байтом по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.
Write32 (uint8_t *& p, uint32_t v)
void
Выполните потенциально невыровненную запись в память 32-битного значения целевой системы с байтовым упорядочением по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.
Write64 (uint8_t *& p, uint64_t v)
void
Выполните потенциально невыровненную запись в память целевого системного 64-битного значения с упорядоченным порядком байтов по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.

Функции

Получить16

uint16_t Get16(
  const uint8_t *p
)

Выполните потенциально невыровненное чтение памяти 16-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы.

Подробности
Параметры
[in] p
Адрес указателя, потенциально невыровненный, для чтения 16-битного упорядоченного значения байтов с прямым порядком байтов.
Возврат
16-битное значение по указанному адресу указателя, при необходимости порядок байтов переупорядочивается.

Получить32

uint32_t Get32(
  const uint8_t *p
)

Выполните потенциально невыровненное чтение памяти 32-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы.

Подробности
Параметры
[in] p
Адрес указателя, потенциально невыровненный, для чтения 32-битного упорядоченного значения байтов с прямым порядком байтов.
Возврат
32-битное значение по указанному адресу указателя, при необходимости порядок байтов переупорядочивается.

Получить64

uint64_t Get64(
  const uint8_t *p
)

Выполните потенциально невыровненное чтение памяти 64-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы.

Подробности
Параметры
[in] p
Адрес указателя, потенциально невыровненный, для чтения 64-битного упорядоченного значения байтов с прямым порядком байтов.
Возврат
64-битное значение по указанному адресу указателя, при необходимости порядок байтов переупорядочивается.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Это условно выполняет, если это необходимо для целевой системы, замену порядка байтов на значение указанного 16-битного значения, предположительно имеющего порядок байтов с прямым порядком байтов для целевой системы (т. е.

хост) порядок байтов.

Следовательно, в целевых системах с прямым порядком байтов это не является операцией, а в целевых системах с прямым порядком байтов выполняется переупорядочение.

Подробности
Параметры
[in] v
16-битное значение, порядок байтов которого будет изменен.
Возврат
Входное значение при необходимости меняет порядок байтов.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Это условно выполняет, если это необходимо для целевой системы, замену порядка байтов на значение указанного 32-битного значения, предположительно имеющего порядок байтов с прямым порядком байтов для целевой системы (т. е.

хост) порядок байтов.

Следовательно, в целевых системах с прямым порядком байтов это не является операцией, а в целевых системах с прямым порядком байтов выполняется переупорядочение.

Подробности
Параметры
[in] v
32-битное значение, порядок байтов которого будет изменен.
Возврат
Входное значение при необходимости меняет порядок байтов.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Это условно выполняет, если это необходимо для целевой системы, замену порядка байтов на значение указанного 64-битного значения, предположительно имеющего порядок байтов с прямым порядком байтов для целевой системы (т. е.

хост) порядок байтов.

Следовательно, в целевых системах с прямым порядком байтов это не является операцией, а в целевых системах с прямым порядком байтов выполняется переупорядочение.

Подробности
Параметры
[in] v
64-битное значение, порядок байтов которого будет изменен.
Возврат
Входное значение при необходимости меняет порядок байтов.

Поставьте16

void Put16(
  uint8_t *p,
  uint16_t v
)

Выполните потенциально невыровненную запись в память 16-битного значения целевой системы с упорядоченным байтом по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.

Подробности
Параметры
[in] p
Адрес указателя, потенциально невыровненный, для записи 16-битного значения целевой системы с прямым порядком байтов.
[in] v
16-битное значение для записи, при необходимости порядок байтов переупорядочивается.

Поставить32

void Put32(
  uint8_t *p,
  uint32_t v
)

Выполните потенциально невыровненную запись в память 32-битного значения целевой системы с байтовым упорядочением по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.

Подробности
Параметры
[in] p
Адрес указателя, потенциально невыровненный, для записи 32-битного значения целевой системы с прямым порядком байтов.
[in] v
32-битное значение для записи, при необходимости порядок байтов переупорядочивается.

Поставил64

void Put64(
  uint8_t *p,
  uint64_t v
)

Выполните потенциально невыровненную запись в память целевого системного 64-битного значения с упорядоченным порядком байтов по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.

Подробности
Параметры
[in] p
Адрес указателя, потенциально невыровненный, для записи 64-битного значения целевой системы с прямым порядком байтов.
[in] v
64-битное значение для записи, при необходимости порядок байтов переупорядочивается.

Читать16

uint16_t Read16(
  uint8_t *& p
)

Выполните потенциально невыровненное чтение памяти 16-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 16 бит (2 байта).

Подробности
Параметры
[in,out] p
Ссылка на адрес указателя, потенциально невыровненный, для чтения 16-битного упорядоченного значения байта с прямым порядком байтов и последующего увеличения на 16 бит (2 байта).
Возврат
16-битное значение по указанному адресу указателя, при необходимости порядок байт меняется.

Читать16

uint16_t Read16(
  const uint8_t *& p
)

Выполните потенциально невыровненное чтение памяти 16-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 16 бит (2 байта).

Подробности
Параметры
[in,out] p
Ссылка на постоянный адрес указателя, потенциально невыровненный, для чтения 16-битного упорядоченного значения байта с прямым порядком байтов и последующего увеличения на 16 бит (2 байта).
Возврат
16-битное значение по указанному адресу указателя, при необходимости порядок байт меняется.

Читать32

uint32_t Read32(
  uint8_t *& p
)

Выполните потенциально невыровненное чтение памяти 32-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 32 бита (4 байта).

Подробности
Параметры
[in,out] p
Ссылка на адрес указателя, потенциально невыровненный, для чтения 32-битного упорядоченного значения байтов с прямым порядком байтов и последующего увеличения на 32 бита (4 байта).
Возврат
32-битное значение по указанному адресу указателя, при необходимости порядок байт меняется.

Читать32

uint32_t Read32(
  const uint8_t *& p
)

Выполните потенциально невыровненное чтение памяти 32-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 32 бита (4 байта).

Подробности
Параметры
[in,out] p
Ссылка на постоянный адрес указателя, потенциально невыровненный, для чтения 32-битного упорядоченного значения байтов с прямым порядком байтов и последующего увеличения на 32 бита (4 байта).
Возврат
32-битное значение по указанному адресу указателя, при необходимости порядок байт меняется.

Читать64

uint64_t Read64(
  uint8_t *& p
)

Выполните потенциально невыровненное чтение памяти 64-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 64 бита (8 байт).

Подробности
Параметры
[in,out] p
Ссылка на адрес указателя, потенциально невыровненный, для чтения 64-битного упорядоченного значения байтов с прямым порядком байтов и последующего увеличения на 64 бита (8 байт).
Возврат
64-битное значение по указанному адресу указателя, при необходимости порядок байт меняется.

Читать64

uint64_t Read64(
  const uint8_t *& p
)

Выполните потенциально невыровненное чтение памяти 64-битного значения с прямым порядком байтов из указанного адреса указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов целевой системы, и увеличьте указатель на 64 бита (8 байт).

Подробности
Параметры
[in,out] p
Ссылка на постоянный адрес указателя, потенциально невыровненный, для чтения 64-битного упорядоченного значения байтов с прямым порядком байтов и последующего увеличения на 64 бита (8 байт).
Возврат
64-битное значение по указанному адресу указателя, при необходимости порядок байт меняется.

Написать16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Выполните потенциально невыровненную запись в память 16-битного значения целевой системы с упорядоченным байтом по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.

Подробности
Параметры
[in] p
Ссылка на адрес указателя, потенциально невыровненный, для записи 16-битного значения целевого системного байта с прямым порядком байтов и последующего увеличения на 16 бит (2 байта).
[in] v
16-битное значение для записи, при необходимости порядок байтов меняется.

Написать32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Выполните потенциально невыровненную запись в память 32-битного значения целевой системы с байтовым упорядочением по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.

Подробности
Параметры
[in] p
Ссылка на адрес указателя, потенциально невыровненный, для записи 32-битного значения целевого системного байта с прямым порядком байтов и последующего увеличения на 32 бита (4 байта).
[in] v
32-битное значение для записи, при необходимости порядок байтов меняется.

Написать64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Выполните потенциально невыровненную запись в память целевого системного 64-битного значения с упорядоченным порядком байтов по указанному адресу указателя, при необходимости выполните переупорядочение байтов, чтобы целевая система поместила значение в порядок байтов с прямым порядком байтов.

Подробности
Параметры
[in] p
Ссылка на адрес указателя, потенциально невыровненный, для записи 64-битного значения целевой системы с прямым порядком байтов и последующего увеличения на 64 бита (8 байт).
[in] v
64-битное значение для записи, при необходимости порядок байтов меняется.