Macros to swap variables in C.
Download: header file.
// Swap variables (xor).
ESWAP(vara, varb)// swap a, b
ESWAP(a, b);
printf("%x %x", a, b);// Swap variables using third variable.
ESWAP_VAR(varx, vary, type)// define integers a, b
int a = 0x1122;
int b = 0x3344;
printf("%x %x", a, b);
// swap a, b
ESWAP_VAR(a, b, int);
printf("%x %x", a, b);// Swap variables using temporary buffer.
ESWAP_BUF(varx, vary)// swap a, b
ESWAP_BUF(a, b);
printf("%x %x", a, b);// Swap variables using addition and subtraction.
ESWAP_ADDSUB(varx, vary)// swap a, b
ESWAP_ADDSUB(a, b);
printf("%x %x", a, b);// Swap variables using XOR.
ESWAP_XOR(varx, vary)// swap a, b
ESWAP_XOR(a, b);
printf("%x %x", a, b);// Swap individual bits using XOR.
ESWAP_BITSXOR(varx, vary, bits)// swap higher 8 bits of a, b
ESWAP_BITSXOR(a, b, 0xFF00);
printf("%x %x", a, b);// Swap individual bits.
ESWAP_BITS(varx, vary, bits)// swap higher 8 bits of a, b
ESWAP_BITS(a, b, 0xFF00);
printf("%x %x", a, b);