2011年1月17日 星期一

Never swap with yourself

#include <stdio.h>
#define SWAP(x, y) x ^= y ^= x ^= y

main()
{
  int i = 3;
  int j = 5;
  printf("%d\n", i);
  printf("%d\n", j);
  SWAP(i, j);
  printf("%d\n", i);
  printf("%d\n", j);
  SWAP(i, i);
  printf("%d\n", i);
}

The output.

3
5
5
3
0