delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/03/18/06:30:03

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: parsing errors
Date: 18 Mar 2002 11:19:06 GMT
Organization: Aachen University of Technology (RWTH)
Lines: 45
Message-ID: <a74ifa$io8$1@nets3.rz.RWTH-Aachen.DE>
References: <3C94FA1B DOT 8E6A9BA3 AT roosnek DOT nl> <Xns91D4B9FE663Basu1cornelledu AT 132 DOT 236 DOT 56 DOT 8>
NNTP-Posting-Host: acp3bf.physik.rwth-aachen.de
X-Trace: nets3.rz.RWTH-Aachen.DE 1016450346 19208 137.226.32.75 (18 Mar 2002 11:19:06 GMT)
X-Complaints-To: abuse AT rwth-aachen DOT de
NNTP-Posting-Date: 18 Mar 2002 11:19:06 GMT
Originator: broeker@
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

A. Sinan Unur <asu1 AT cornell DOT edu> wrote:
[...]
> w.c:175:4: warning: pasting "new_alpha" and "[" does not give a valid 
> preprocessing token
[...]
> #define create_priori_angle( phi ) \
> new_##phi##[0]=phi##[0]+phi##[1]*delt;\
> new_##phi##[1]=phi##[1];\
> P_##phi##[0]+=.0001*delt;P_##phi##[2]+=.001*delt

> that just looks weird to me. 

It's not just weird, it's plain wrong.  GCC is correct to warn about this.

> why not use:

> #define create_priori_angle( phi ) \
>  new_##phi[0]=phi[0]+phi[1]*delt;  \
>  new_##phi[1]=phi[1];\
>  P_##phi[0]+=.0001*delt;P_##phi[2]+=.001*delt

That's the correct way of doing this, indeed. A slight improvement
would be:

#define create_priori_angle( phi ) do {\
 new_##phi[0]=phi[0]+phi[1]*delt;  \
 new_##phi[1]=phi[1];\
 P_##phi[0]+=.0001*delt;
 P_##phi[2]+=.001*delt;
} while(0)

This will allow things like

	if (condition)
	   create_priori_angle(alpha);
	else
	   create_priori_angle(beta);

to do what you thought they would, without restricting you to always
place { }.


-- 
Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de)
Even if all the snow were burnt, ashes would remain.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019