#define swap(a, b) {int tmp; tmp=a;a=b;b=tmp;}これではダメなのか?swap(a,b);として普通にコンパイルできるが。