// swap macro exchanges operand values using exclusive or operator #include #define swap(a,b)({a^=b; b^=a; a^=b;}) volatile uint8_t m ; volatile uint8_t n ; /* volatile char table[12]; volatile char * ptable = table; */ uint8_t foo(uint8_t bar){ return(bar/2); } int main(){ m=0x02; n=0x07; swap(m,n); }