You could avoid the entire temporary variable with the XOR method:
Code:#include <stdio.h> #define swap(a,b) a^=b^=a^=b int main(void) { int i, j; i = 5; j = 10; printf("i: %d, j: %d\n", i, j); swap(i, j); printf("i: %d, j: %d", i, j); return 0; }