Agar Logo

Agar 1.7 Manual

(Printable Version)
AG_ByteSwap(3)

SYNOPSIS

#include <agar/core/byteswap.h>

DESCRIPTION

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)

Uint16 AG_SwapLE16 (Uint16 value)

Uint32 AG_SwapLE32 (Uint32 value)

Uint64 AG_SwapLE64 (Uint64 value)

Uint16 AG_SwapBE16 (Uint16 value)

Uint32 AG_SwapBE32 (Uint32 value)

Uint64 AG_SwapBE64 (Uint64 value)


The AG_Swap16(), AG_Swap32() and AG_Swap64() functions return the parameter's value with the byte order reversed.

AG_SwapLE16(), AG_SwapLE32(), and AG_SwapLE64() return 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() and AG_SwapBE64() return 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_HAVE_64BIT), then AG_Swap64(), AG_SwapLE64() and AG_SwapBE64() are undefined.

EXAMPLES

The following code reverses the byte order of an array of 32-bit values:

void
SwapData32(Uint32 *data, int len)
{
	int i;

	for (i = 0; i < len; i++)
		data[i] = AG_Swap32(data[i]);
}

SEE ALSO


HISTORY

The AG_ByteSwap macros first appeared in Agar 1.3.4.

Csoft.net ElectronTubeStore