Listing 1
#define swap( x, y ) \ ({ typeof(x) temp = (x); \ x = y; y = temp; \ })