// swap.c
// victor00000 (c) 2018
// ~$ gcc -Wall swap.c -o swap || echo "ERROR $?"
// ~$ ./swap
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define swap(type,a,b) do{type tmp = a; a = b; b = tmp;} while (0)
int main (){
int a = 1, b = 2;
swap (int, a, b);
printf ("%d <-> %d\n",a,b);
char *A = strdup ("A");
char *B = strdup ("B");
swap (char*, A, B);
printf ("%s <-> %s\n", A, B);
free (A); free (B);
return 0;
}