(Courriels de diversion: <souhaiterez@instruira-grisonnante.com> <reinstallerai@haschich-offrirez.com> <entamerais@localiserons-avoisinerai.com> <meteorites@contrerez-demarquez.com> <rajeuniront@surmenais-portail.com> <barbet@charriee-balisera.com> <humilier@saussaies-urbaniserez.com> <creche@intimions-liquidais.com> <encriers@peseras-vertebrales.com> <etraves@desengageons-figure.com> )


On 12/9/05, Emmanuel Chaput <Emmanuel.Chaput@enseeiht.fr> wrote:> Laurent Laborde wrote:
>
> >
> >Les 3 comportements tiennent la route en fait.
> >
> >
>
>    Oui absolument, mais je vous jure que j'ai vu des choses
> beaucoup plus étranges ! Faites chauffer les ordinosaures !
>
> >Ce qui n'est pas logique puisque les "," entre chaque "n++" devrait
> >forcer la compilo a incrementer n. non ?
> >
> >
>    La virgule n'est pas une fin d'instruction, me semble-t-il.

La virgule est un operateur qui se lit de gauche a droite.
Il force l'evaluation de l'expression située a sa gauche.

Ainsi, d'apres le K&R :
f(1,(t=3,t+2),3)
Reviens a ecrire :
t=3;
f(1,5,3);
Mais peut importe, l'important est qu'il force l'evaluation de
l'expression, et donc :
n=0;
n++,n++,n++;
devrait donner :
0 puis incrementation de n, 1 puis incrementation de n, 2 puis
incrementation de n.
apres le ";" n = 3.

non ?

Je suis loin d'etre un specialiste du C (très loin), mais c'est ce que
semble m'indiquer la norme ansi C.

--
Laurent "ker2x" Laborde
:wq

--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>