Code
#include <stdio.h>
#include <stdlib.h>
#define SwapPointer(x, y){ int t; t=*x; *x=*y; *y=t; }
#define SwapXOR(x, y) { x^=y; y^=x; x^=y; }
#define SwapNormal(x, y) { int t; t=x; x=y; y=t; }
int main()
{
int array[2] = {1, 2};
printf("Original:\t%d\t%d\n", array[0], array[1]);
SwapPointer(&array[0], &array[1]);
printf("Pointer:\t%d\t%d\n", array[0], array[1]);
SwapXOR(array[0], array[1]);
printf("XOR:\t\t%d\t%d\n", array[0], array[1]);
SwapNormal(array[0], array[1]);
printf("Normal:\t\t%d\t%d\n", array[0], array[1]);
return 0;
}
----------
Output
----------
Original: 1 2
Pointer: 2 1
XOR: 1 2
Normal: 2 1
Process returned 0 (0x0) execution time : 0.033 s
Press any key to continue.
What is the problem you hare having? I don't see the a bug in his code. How are you attempting to use this? Show us your code...