🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15159

Re: rot13 [Was : Re: conjugaison et autres ...]

#15159
From: Harpo
Date: Sat, 08 Oct 2005 11:40
77 lines
4274 bytes
Charlie Gordon wrote:

> "Harpo" <trashcan@hotmail.com> wrote in message
> news:43475686$0$17226$8fcfb975@news.wanadoo.fr...
>> Charlie Gordon wrote:
> 
>> > Ton truc ne marche pas : (return c)  n'est pas une instruction
>> > conforme.
>>
>> En effet mais j'ai bien dit 'un truc comme �a'.
>> J'ai oubli� des copi� coll� d'une ligne au dessus.
>> Corrigeons, j'ai compil�, j'avais notamment aussi oubli� les
>> accolades :
>>
>> #ifdef DEBUG
>> #ifdef __GNUC__
>> #define xreturn( rc ) \
>> ( { __typeof__(rc) RC = rc; \
>>         fprintf( stderr, "function %s return %lx\n", __func__, \
>>                         (long)RC ); return RC ; \
>> } )
>> #else
>> #define xreturn( rc ) \
>>         return rc
>> #endif // __GNUC__
>> #else
>> #define xreturn( rc ) \
>>         return rc
>> #endif // DEBUG
> 
> Oui, ils ne redefinissent pas return, mais une macro xreturn avec
> parametre. Je maintiens donc que les parentheses sont nuisibles dans
> la plupart des instructions return :
>  return NULL; et non return( NULL );

Je ne sais pas si j'emploie les bon termes, mais NULL est une valeur,
(NULL) est une expression, la valeur NULL est une expression simple et
les 2 expressions sont �valu�es pour donner le m�me r�sultat, la valeur
NULL. Je ne vois gu�re de diff�rence sinon le tracas suppl�mentaire au
scanner et au parser.
> 
>> > et la version de DEBUG ne marche pas pour des cas simples
>> > comme:
>> >
>> > return ((int)value);
>> >
>> > ou
>> >
>> > return ((a + b) * c);
>>
>> Ah bon ? Et pourquoi donc ?
> 
> Parce que certains pr�processeurs vont expanser return recursivement :
> return
> (int)value  et return (a+b) * c .
> Et tous les preprocesseurs le feront si tu ne rajoutes pas
> systematiquement des parentheses partout, en particulier dans du code
> import�...

CQFD :-)
Il n'y a pas de r�cursivit� l�-dedans (et on a g�n�ralement plut�t du
mal � faire r�cursionner le pr�processeur), la macro xreturn ne fait
pas r�f�rence � xreturn.

Le probl�me venant de l'absence de parenth�ses est celui-ci, au lieu
d'�crire
( { __typeof__(rc) RC = rc;
J'aurais du �crire :
( { __typeof__(rc) RC = (rc);

ce qui peut l'expanser en (long)( (a +b) * c) plut�t qu'en (long) (a +
b) * c, ce qui pourrait peut-�tre causer dans certains cas des
probl�mes.
En tout cas, la surabondance des parenth�ses ne nuit pas.

Ma vision des choss est plut�t : en cas de doute, mettre des
parenth�ses.
Technical Details
Message-ID: <4347b023$0$1709$8fcfb975@news.wanadoo.fr>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed.gamma.ru!Gamma.RU!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news-raspail.gip.net!news.gsl.net!gip.net!grolier!rain.fr!news.wanadoo.fr!news.wanadoo.fr!not-for-mail
References: <1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr> <4340cabe$0$27448$8fcfb975@news.wanadoo.fr> <43438f4d$0$21032$636a55ce@news.free.fr> <434433fa$0$5374$8fcfb975@news.wanadoo.fr> <43468180$0$20850$636a55ce@news.free.fr> <43475686$0$17226$8fcfb975@news.wanadoo.fr> <4347976d$0$16540$626a14ce@news.free.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,b21b26167a936e28
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed.gamma.ru!Gamma.RU!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news-raspail.gip.net!news.gsl.net!gip.net!grolier!rain.fr!news.wanadoo.fr!news.wanadoo.fr!not-for-mail
Message-ID: <4347b023$0$1709$8fcfb975@news.wanadoo.fr>
From: Harpo <trashcan@hotmail.com>
Subject: Re: rot13 [Was : Re: conjugaison et autres ...]
Newsgroups: fr.comp.lang.c
Date: Sat, 08 Oct 2005 13:40:06 +0200
References: <1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr> <4340cabe$0$27448$8fcfb975@news.wanadoo.fr> <43438f4d$0$21032$636a55ce@news.free.fr> <434433fa$0$5374$8fcfb975@news.wanadoo.fr> <43468180$0$20850$636a55ce@news.free.fr> <43475686$0$17226$8fcfb975@news.wanadoo.fr> <4347976d$0$16540$626a14ce@news.free.fr>
Organization: ARG ; Association pour la Rehabilitation du Goto
User-Agent: KNode/0.8.2
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8Bit
Lines: 78
NNTP-Posting-Date: 08 Oct 2005 13:40:19 CEST
NNTP-Posting-Host: 83.195.126.74
X-Trace: 1128771619 news.wanadoo.fr 1709 83.195.126.74:34885
X-Complaints-To: abuse@wanadoo.fr