"R. A. Larsen" <rene.larsen@spamfilter.dk> wrote in message
news:VA.0000019a.007bf192@spamfilter.dk...
> In article <taa0kusssaclke5jrjg95rpqe0dvacbgr8@news.telia.dk>, Bertel
> Lund Hansen wrote:
> > Anders Melchiorsen skrev:
> > >Ja, det gælder også for C++ at nogle bruger med og andre bruger uden
> > >parentes. Begge dele er lige gode.
> >
> > Nej. Parenteser får en til at tro at der kommer et sammensat
> > udtryk - og det er træls når det ikke passer.
Netop! "return <expr>;" er et statement, hvorimod "exit(1)" fx er et
funktionskald. Der er en stor forskel.
Og så er der jo også det altovervejende argument, at hvis man skriver
"return(42);", så bliver man sat i bås med begyndere og andre amatører
.
Paranteserne omkring "1" i "exit(1)" er en del af syntaksen for
funktionskald.
Paranteserne omkring "42" i "return(42);" er en del af udtrykket (42), og
det viser IMHO at man ikke har fattet en brik, hvis man skriver sådan
> > Man har såmænd også lov at pakke alle variable ind i parenteser,
> > men det er heller ingen god idé.
>
> I visse tilfælde er det dog en fordel at pakke alle variable ind i
> parenteser. Tænk bare på følgende "funktion":
>
> #define f(a,b,c,d) ((a)*(b)+(c)*(d))
Det viser ikke at det er en fordel at pakke alle variable ind i paranteser.
Det viser at præprocessoren er er lige til at lukke op og skide i.
> Med mindre *alle* parenteserne er med, kan man få mange /sjove/
> resultater ud af denne lille "funktion".
En af mange gode grunde til ikke at bruge #define.
Bjarke