From: kagel AT quasar DOT bloomberg DOT com Date: Mon, 28 Oct 1996 09:38:21 -0500 Message-Id: <9610281438.AA01767@quasar.bloomberg.com > To: eliz AT is DOT elta DOT co DOT il Cc: bhodge AT gpu2 DOT srv DOT ualberta DOT ca, djgpp AT delorie DOT com In-Reply-To: (message from Eli Zaretskii on Sun, 27 Oct 1996 14:56:49 +0200 (IST)) Subject: Re: Borland library macro equivalent? Reply-To: kagel AT dg1 DOT bloomberg DOT com Errors-To: postmaster AT bloomberg DOT com Date: Sun, 27 Oct 1996 14:56:49 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is Cc: djgpp AT delorie DOT com Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-Length: 652 On 23 Oct 1996, B Hodge wrote: > Eli Zaretskii (eliz AT is DOT elta DOT co DOT il) wrote: > : #define max(a,b) ({ typeof(a) _tmp_a = (a); \ > : typeof(b) _tmp_b = (b); \ > : (_tmp_a > _tmp_b) ? _tmp_a : _tmp_b; }) > > So then the following code would be legal? > > x={ int s, c; s=sin(a); c=cos(a); s*s*y+s*c*y+c*c*y; }; I'm not sure it will work without parentheses around it: It definitely needs the parenthesis or the compiler complains about a parse error. x = ({ int s, c; s=sin(a); c=cos(a); s*s*y+s*c*y+c*c*y; }); But this is documented in the GCC docs; just read there. > Is this legal under other languages tooor is it just a DJGPP specific > thing? It's GCC specific, so it will work on any platform if you use GCC. I verified this on Data General DG/UX, GCC is the native/delivered compiler there and this works as advertised. -- Art S. Kagel, kagel AT quasar DOT bloomberg DOT com A proverb is no proverb to you 'till life has illustrated it. -- John Keats