These macros swap the order of bytes in integers and floating-point types. They
are useful when reading or writing data of a specific endianness.
Uint16
AG_Swap16
(Uint16
value);
Uint32
AG_Swap32
(Uint32
value);
Uint64
AG_Swap64
(Uint64
value);
float
AG_SwapFLT
(float
value);
double
AG_SwapDBL
(double
value);
long double
AG_SwapLDBL
(long
double value);
Uint16
AG_SwapLE16
(Uint16
value);
Uint32
AG_SwapLE32
(Uint32
value);
Uint64
AG_SwapLE64
(Uint64
value);
float
AG_SwapLEFLT
(float
value);
double
AG_SwapLEDBL
(double
value);
long double
AG_SwapLELDBL
(long
double value);
Uint16
AG_SwapBE16
(Uint16
value);
Uint32
AG_SwapBE32
(Uint32
value);
Uint64
AG_SwapBE64
(Uint64
value);
float
AG_SwapBEFLT
(float
value);
double
AG_SwapBEDBL
(double
value);
long double
AG_SwapBELDBL
(long
double value);
The functions AG_Swap16
(),
AG_Swap32
(), AG_Swap64
(),
AG_SwapFLT
(), AG_SwapDBL
()
and AG_SwapLDBL
() return the given value with the
byte order reversed.
AG_SwapLE16
(),
AG_SwapLE32
(),
AG_SwapLE64
(),
AG_SwapLEFLT
(),
AG_SwapLEDBL
() and
AG_SwapLELDBL
() returns the given value with the
byte order reversed if the current architecture is big-endian. On
little-endian machines, these functions return the value unchanged.
AG_SwapBE16
(),
AG_SwapBE32
(),
AG_SwapBE64
(),
AG_SwapBEFLT
(),
AG_SwapBEDBL
() and
AG_SwapBELDBL
() returns the given value with the
byte order reversed if the current architecture is little-endian. On
big-endian machines, these functions return the value unchanged.
If 64-bit types are not supported,
AG_Swap64
(), AG_SwapLE64
()
and AG_SwapBE64
() are not defined. If quad-precision
arithmetic is not supported, AG_SwapLDBL
(),
AG_SwapLELDBL
() and
AG_SwapBELDBL
() are not defined.