#include // we define a macro to swap two variables: // one should protect all the macro parameters with (...) // and the whole macro with {...} #define SWAP(A,B) { temp__yzVBZq = (A); (A) = (B); (B) = temp__yzVBZq; } // global variable used by the above macro: int temp__yzVBZq; // Why do we use this crazy name? int main(void) { // our two variables: int one = 1, two = 2; // now, we do not want to swap them: if (1) SWAP(one,two); // look at the result: printf("one = %d, two = %d\n", one, two); // end: return 0; }