nl:: Weave:: Encoding:: 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 位元 (2 個位元組)。
|
Read16(const uint8_t *& p)
|
uint16_t
從指定指標位址執行一個可能未對齊的小端子位元組讀取記憶體讀取,並視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並將指標遞增 16 位元 (2 個位元組)。
|
Read32(uint8_t *& p)
|
uint32_t
從指定指標位址執行一個可能未對齊的小端子位元組讀取記憶體讀取,並視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並將指標遞增 32 位元 (4 個位元組)。
|
Read32(const uint8_t *& p)
|
uint32_t
從指定指標位址執行一個可能未對齊的小端子位元組讀取記憶體讀取,並視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並將指標遞增 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 位元 (2 個位元組)。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
指定指標位址的 16 位元值 (如有必要,已替換位元組順序)。
|
Read16
uint16_t Read16( const uint8_t *& p )
從指定指標位址執行一個可能未對齊的小端子位元組讀取記憶體讀取,並視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並將指標遞增 16 位元 (2 個位元組)。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
指定指標位址的 16 位元值 (如有必要,已替換位元組順序)。
|
Read32
uint32_t Read32( uint8_t *& p )
從指定指標位址執行一個可能未對齊的小端子位元組讀取記憶體讀取,並視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並將指標遞增 32 位元 (4 個位元組)。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
指定指標位址的 32 位元值 (如有必要,已替換位元組順序)。
|
Read32
uint32_t Read32( const uint8_t *& p )
從指定指標位址執行一個可能未對齊的小端子位元組讀取記憶體讀取,並視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並將指標遞增 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 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,並視需要執行位元組重新排序,讓目標系統以小一端的位元組順序放置值。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|