nl:: Weave:: Encoding:: LittleEndian
Dieser Namespace bietet Funktionen für:
Zusammenfassung
- Byte-Neuanordnung relativ zum Hostsystem nach dem Wert von Little-Endian-Byte-sortierten Werten für 16-, 32- und 64-Bit-Typen.
- Sichere Ausführung einfacher, effizienter speicherzuordnungsfähiger Zugriffe, möglicherweise auf nicht ausgerichtete Speicherstandorte mit oder ohne Byte-Neuanordnung auf 8-, 16-, 32- und 64-Bit-Little-Endian-Bytemengen, sowohl mit als auch ohne Zeigerverwaltung.
Auf Little-Endian-Hostsystemen findet keine tatsächliche Byte-Neuordnung statt. Auf anderen Systemen wird die Bytereihenfolge entsprechend durchgeführt.
Funktionen |
|
---|---|
Get16(const uint8_t *p)
|
uint16_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einführt.
|
Get32(const uint8_t *p)
|
uint32_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.
|
Get64(const uint8_t *p)
|
uint64_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.
|
HostSwap16(uint16_t v)
|
uint16_t
Dadurch erfolgt, wie für das Zielsystem erforderlich, ein Austausch der Bytereihenfolge anhand des Werts des angegebenen 16-Bit-Werts, der vermutlich in Little-Endian-Bytereihenfolge in Bezug auf das Zielsystem erfolgt (d.h.
|
HostSwap32(uint32_t v)
|
uint32_t
Dadurch erfolgt, wie für das Zielsystem erforderlich, ein Austausch der Bytereihenfolge anhand des Werts des angegebenen 32-Bit-Werts, der vermutlich in Little-Endian-Bytereihenfolge in Bezug auf das Zielsystem erfolgt (d.h.
|
HostSwap64(uint64_t v)
|
uint64_t
Dadurch erfolgt, wie für das Zielsystem erforderlich, ein Austausch der Bytereihenfolge nach dem Wert des angegebenen 64-Bit-Werts, der vermutlich in Little-Endian-Bytereihenfolge gegenüber dem Zielsystem erfolgt (d.h.
|
Put16(uint8_t *p, uint16_t v)
|
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
|
Put32(uint8_t *p, uint32_t v)
|
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 32-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytesortierung einfügt.
|
Put64(uint8_t *p, uint64_t v)
|
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
|
Read16(uint8_t *& p)
|
uint16_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).
|
Read16(const uint8_t *& p)
|
uint16_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).
|
Read32(uint8_t *& p)
|
uint32_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).
|
Read32(const uint8_t *& p)
|
uint32_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).
|
Read64(uint8_t *& p)
|
uint64_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).
|
Read64(const uint8_t *& p)
|
uint64_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).
|
Write16(uint8_t *& p, uint16_t v)
|
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
|
Write32(uint8_t *& p, uint32_t v)
|
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 32-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytesortierung einfügt.
|
Write64(uint8_t *& p, uint64_t v)
|
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
|
Funktionen
Get16
uint16_t Get16( const uint8_t *p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einführt.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 16-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.
|
Get32
uint32_t Get32( const uint8_t *p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 32-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.
|
Get64
uint64_t Get64( const uint8_t *p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytereihenfolge einbringt.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.
|
HostSwap16
uint16_t HostSwap16( uint16_t v )
Dadurch erfolgt, wie für das Zielsystem erforderlich, ein Austausch der Bytereihenfolge anhand des Werts des angegebenen 16-Bit-Werts, der vermutlich in Little-Endian-Bytereihenfolge in Bezug auf das Zielsystem erfolgt (d.h.
Host) Byte-Reihenfolge.
Folglich ist dies bei Little-Endian-Zielsystemen eine Nulloperation und bei Big-Endian-Zielsystemen eine Neuordnung.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der Eingabewert, falls erforderlich, Bytereihenfolge vertauscht.
|
HostSwap32
uint32_t HostSwap32( uint32_t v )
Dadurch erfolgt, wie für das Zielsystem erforderlich, ein Austausch der Bytereihenfolge nach dem Wert des angegebenen 32-Bit-Werts, der vermutlich in Little-Endian-Bytereihenfolge gegenüber dem Zielsystem erfolgt (d.h.
Host) Byte-Reihenfolge.
Folglich ist dies bei Little-Endian-Zielsystemen eine Nulloperation und bei Big-Endian-Zielsystemen eine Neuordnung.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der Eingabewert, falls erforderlich, Bytereihenfolge vertauscht.
|
HostSwap64
uint64_t HostSwap64( uint64_t v )
Dadurch erfolgt, wie für das Zielsystem erforderlich, ein Austausch der Bytereihenfolge nach dem Wert des angegebenen 64-Bit-Werts, der vermutlich in Little-Endian-Bytereihenfolge gegenüber dem Zielsystem erfolgt (d.h.
Host) Byte-Reihenfolge.
Folglich ist dies bei Little-Endian-Zielsystemen eine Nulloperation und bei Big-Endian-Zielsystemen eine Neuordnung.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der Eingabewert, falls erforderlich, Bytereihenfolge vertauscht.
|
Put16
void Put16( uint8_t *p, uint16_t v )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Put32
void Put32( uint8_t *p, uint32_t v )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 32-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytesortierung einfügt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Put64
void Put64( uint8_t *p, uint64_t v )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Read16
uint16_t Read16( uint8_t *& p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 16-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.
|
Read16
uint16_t Read16( const uint8_t *& p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 16-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.
|
Read32
uint32_t Read32( uint8_t *& p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 32-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.
|
Read32
uint32_t Read32( const uint8_t *& p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 32-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.
|
Read64
uint64_t Read64( uint8_t *& p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.
|
Read64
uint64_t Read64( const uint8_t *& p )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.
|
Write16
void Write16( uint8_t *& p, uint16_t v )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Write32
void Write32( uint8_t *& p, uint32_t v )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 32-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch. Führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytesortierung einfügt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Write64
void Write64( uint8_t *& p, uint64_t v )
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch, und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Bytereihenfolge setzt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|