nl:: Weave:: Encoding:: BigEndian
此命名空间提供了用于以下用途的函数:
摘要
- 根据 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 位值(可能未对齐)内存写入,根据需要执行字节重新排序,以便目标系统将值放入大端字节序。
|
函数
Get16
uint16_t Get16( const uint8_t *p )
从指定的指针地址对采用 16 位排序的大端字节(可能未对齐)执行内存读取,并根据需要执行字节重新排序,以便目标系统将值放入目标系统字节排序中。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如有必要,对指定指针地址中的 16 位值进行重新排序的字节重新排序。
|
Get32
uint32_t Get32( const uint8_t *p )
从指定的指针地址对采用 32 位排序的大端字节执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值放入目标系统字节排序中。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指定指针地址中的 32 位值(如有必要),会对字节重新排序。
|
Get64
uint64_t Get64( const uint8_t *p )
从指定的指针地址对采用 64 位排序的大端字节执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值放入目标系统字节排序中。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如有必要,对指定指针地址中的 64 位值进行重新排序的字节重新排序。
|
HostSwap16
uint16_t HostSwap16( uint16_t v )
这会有条件地执行(对于目标系统而言)按指定 16 位值的值进行字节顺序交换,并假定采用目标系统的大端字节排序(即
主机)字节排序。
因此,在位端字节序目标系统上,这是空操作,而在大端字节序目标系统上,这会执行重新排序。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
已交换的输入值(如有必要)。
|
HostSwap32
uint32_t HostSwap32( uint32_t v )
这会有条件地执行(对于目标系统而言)按指定 32 位值的值进行字节顺序交换,并假定采用目标系统的大端字节排序(即
主机)字节排序。
因此,在位端字节序目标系统上,这是空操作,而在大端字节序目标系统上,这会执行重新排序。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
已交换的输入值(如有必要)。
|
HostSwap64
uint64_t HostSwap64( uint64_t v )
这会有条件地执行(对于目标系统而言)按指定 64 位值的值进行字节顺序交换,并假定采用目标系统的大端字节排序(即
主机)字节排序。
因此,在位端字节序目标系统上,这是空操作,而在大端字节序目标系统上,这会执行重新排序。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
已交换的输入值(如有必要)。
|
Put16
void Put16( uint8_t *p, uint16_t v )
对指定的指针地址执行可能未对齐的目标系统字节顺序 16 位值的内存写入,并根据需要执行字节重新排序,以便目标系统将值放入大端字节序。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
Put32
void Put32( uint8_t *p, uint32_t v )
对指定的指针地址执行可能未对齐的目标系统字节排序 32 位值的内存写入,并根据需要执行字节重新排序,以便目标系统将值放入大端字节序。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
Put64
void Put64( uint8_t *p, uint64_t v )
对指定的指针地址执行目标系统字节排序的 64 位值(可能未对齐)内存写入,根据需要执行字节重新排序,以便目标系统将值放入大端字节序。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
Read16
uint16_t Read16( uint8_t *& p )
从指定的指针地址对采用 16 位排序的大端字节执行可能未对齐的内存读取,根据需要执行字节重新排序,使目标系统将值放入目标系统字节排序,然后增加指针 16 位(2 个字节)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指定指针地址中的 16 位值(如有必要),字节顺序已交换。
|
Read16
uint16_t Read16( const uint8_t *& p )
从指定的指针地址对采用 16 位排序的大端字节执行可能未对齐的内存读取,根据需要执行字节重新排序,使目标系统将值放入目标系统字节排序,然后增加指针 16 位(2 个字节)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指定指针地址中的 16 位值(如有必要),字节顺序已交换。
|
Read32
uint32_t Read32( uint8_t *& p )
从指定的指针地址对采用 32 位排序的大端字节执行可能未对齐的内存读取,根据需要执行字节重新排序,使目标系统将值放入目标系统字节排序,然后增加指针 32 位(4 个字节)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指定指针地址中的 32 位值(如有必要),字节顺序已交换。
|
Read32
uint32_t Read32( const uint8_t *& p )
从指定的指针地址对采用 32 位排序的大端字节执行可能未对齐的内存读取,根据需要执行字节重新排序,使目标系统将值放入目标系统字节排序,然后增加指针 32 位(4 个字节)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指定指针地址中的 32 位值(如有必要),字节顺序已交换。
|
Read64
uint64_t Read64( uint8_t *& p )
从指定的指针地址对采用 64 位排序的大端字节执行可能未对齐的内存读取,视需要对目标系统执行字节重新排序,使值按目标系统字节排序,然后使指针增加 64 位(8 个字节)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指定指针地址中的 64 位值(如有必要),字节顺序已交换。
|
Read64
uint64_t Read64( const uint8_t *& p )
从指定的指针地址对采用 64 位排序的大端字节执行可能未对齐的内存读取,视需要对目标系统执行字节重新排序,使值按目标系统字节排序,然后使指针增加 64 位(8 个字节)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指定指针地址中的 64 位值(如有必要),字节顺序已交换。
|
Write16
void Write16( uint8_t *& p, uint16_t v )
对指定的指针地址执行可能未对齐的目标系统字节顺序 16 位值的内存写入,并根据需要执行字节重新排序,以便目标系统将值放入大端字节序。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
Write32
void Write32( uint8_t *& p, uint32_t v )
对指定的指针地址执行可能未对齐的目标系统字节排序 32 位值的内存写入,并根据需要执行字节重新排序,以便目标系统将值放入大端字节序。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
Write64
void Write64( uint8_t *& p, uint64_t v )
对指定的指针地址执行目标系统字节排序的 64 位值(可能未对齐)内存写入,根据需要执行字节重新排序,以便目标系统将值放入大端字节序。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|