Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site utcsri.UUCP Path: utzoo!utcsri!greg From: greg@utcsri.UUCP (Gregory Smith) Newsgroups: net.lang.c Subject: Re: swap() macro Message-ID: <3007@utcsri.UUCP> Date: Fri, 20-Jun-86 11:38:24 EDT Article-I.D.: utcsri.3007 Posted: Fri Jun 20 11:38:24 1986 Date-Received: Fri, 20-Jun-86 11:41:40 EDT References: <1201@brl-smoke.ARPA> Reply-To: greg@utcsri.UUCP (Gregory Smith) Organization: CSRI, University of Toronto Lines: 23 Summary: In article <1201@brl-smoke.ARPA> Schauble@MIT-MULTICS.ARPA (Paul Schauble) writes: >Can someone construct a version that makes > > int *a, *b; > swap (*a++,*b++); > >work right? > #define swap( a,b ) { int *p1,*p2,t;\ p1= &(a); p2= &(b); t= *p1;*p1= *p2;*p2=t;} No, it isn't pretty. how about: #define swap(a,b) fswap(&(a),&(b)) fswap(a,b) int *a,*b; { etc. -- "Shades of scorpions! Daedalus has vanished ..... Great Zeus, my ring!" ---------------------------------------------------------------------- Greg Smith University of Toronto UUCP: ..utzoo!utcsri!greg