Эх, конечно можно . Просто используйте макрос так:
#include <stdio.h>
#define swap(type, foo, bar) ({type tmp; tmp=foo; foo=bar; bar=tmp;})
int main() {
int a=3, b=0;
printf("a=%d, b=%d \n", a, b); // a=3, b=0
swap(int, a, b); // <-- WOOT, check it out!
printf("a=%d, b=%d \n", a, b); // a=0, b=3
return 0;
}