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 位)值的内存写入(可能未对齐),并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|