Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ordre d'evaluation

6 réponses
Avatar
cedric
Que pensez-vous de l'appel de func_two en bas de cette page ?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/express_53.asp

question : que vaut x dans func_two ?

6 réponses

Avatar
Serge Paccalin
Le vendredi 29 octobre 2004 à 05:12:20, cedric a écrit dans
fr.comp.lang.c :

Que pensez-vous de l'appel de func_two en bas de cette page ?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/express_53.asp


Pour ceux qui n'y ont pas accès, c'est la page consacré à l'opérateur
virgule, avec l'exemple ci-dessous :

func_two( (x--, y + 2), z );

question : que vaut x dans func_two ?


x n'est pas passé en argument à func_two.

Si func_two connaît x, c'est uniquement dans le cas où x est une
variable globale et la réponse à ta question est dans la page
elle-même : « The left operand is always evaluated, and all side effects
are completed before the right operand is evaluated. »

--
___________ 2004-10-29 07:53:12
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763

Avatar
Antoine Leca
En 4181b649$0$29753$, cedric va escriure:
Que pensez-vous de l'appel de func_two en bas de cette page ?


Que c'est un exemple d'application des points de séquence (en l'occurence,
6.5.17p2 et 6.5.2.2p10).


question : que vaut x dans func_two ?


Un de moins qu'à la ligne précédent l'appel (en supposant que ce soit une
globale, bien sûr).


Antoine

Avatar
cedric
cedric wrote:
Que pensez-vous de l'appel de func_two en bas de cette page ?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/express_53.asp


Arf Arf, merci Serge pour le copié collé, si je l'aurais vu j'aurais pas
venu poser cette question idiote.

J'avais lu "func_two( (x--,y+1), x)", bref j'avais cru que pour "mieux"
expliquer la virgule ils avaient réutilisé x...

Au temps pour moi.

Aussi, s'ils utilisaient des polices de caractères plus grande aussi !
il n'est pas écrit dans la norme qu'un char doit faire 8 bits de haut !

:-p

Avatar
Pierre Maurette
cedric a écrit:

cedric wrote:
Que pensez-vous de l'appel de func_two en bas de cette page ?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/express_53.asp


Arf Arf, merci Serge pour le copié collé, si je l'aurais vu j'aurais pas
venu poser cette question idiote.

J'avais lu "func_two( (x--,y+1), x)", bref j'avais cru que pour "mieux"
expliquer la virgule ils avaient réutilisé x...

Au temps pour moi.

Aussi, s'ils utilisaient des polices de caractères plus grande aussi !
il n'est pas écrit dans la norme qu'un char doit faire 8 bits de haut !
Les codes souces du MSDN se copient/collent (comme tant d'autres) et

c'est souvent agréable et utile de le faire vers son éditeur favori...
--
Pierre


Avatar
Serge Paccalin
Le vendredi 29 octobre 2004 à 10:45, cedric a écrit dans
fr.comp.lang.c :

cedric wrote:
Que pensez-vous de l'appel de func_two en bas de cette page ?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/express_53.asp


Arf Arf, merci Serge pour le copié collé, si je l'aurais vu j'aurais pas
venu poser cette question idiote.


Ce sont des choses qui arrivent.

J'avais lu "func_two( (x--,y+1), x)", bref j'avais cru que pour "mieux"
expliquer la virgule ils avaient réutilisé x...


Attention ! L'opérateur virgule, c'est la première, celle qui sépare x--
de y + 2, pas la seconde. La seconde, c'est un séparateur d'arguments de
fonction.

Réutiliser x comme tu croyais l'avoir vu aurait donné un comportement
indéfini, parce que l'ordre d'évaluation des paramètres d'une fonction
est indéfinie. Autrement dit, dans l'appel

func_two( (x--,y+1), x);

on est sûr que x-- est complètement évalué avant y+1, mais c'est à peu
près tout.

Au temps pour moi.

Aussi, s'ils utilisaient des polices de caractères plus grande aussi !
il n'est pas écrit dans la norme qu'un char doit faire 8 bits de haut !

:-p


Sous IE, Affichage/Taille du texte. On peut en faire un bouton.


--
___________ 2004-10-29 17:14:06
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763


Avatar
Antoine Leca
En , Serge Paccalin va escriure:
func_two( (x--,y+1), x);

on est sûr que x-- est complètement évalué avant y+1, mais c'est à peu
près tout.


On sait aussi que la décrémentation de x a eu lieu avant l'entrée dans
func_two (observable si c'est une globale, ou plus taquin si (y-1) pointe
vers x).


Antoine