t[i++]++

Le
candide
Bonjour


Juste une petite confirmation : si i est un entier et t est par exemple
un tableau d'entiers ou de flottants, une instruction du style

t[i++]++;


n'est pas indéterminée, n'est-ce pas ? Par exemple si i vaut
initialement 42, l'instruction ci-dessus incrémente d'une unité la
valeur de t[42] tout en passant à la case suivante du tableau t ie la
case 43. Je pose aussi la question car j'ai rarement lu ce genre
d'instruction dans du "vrai" code, peut-être n'est-ce pas considéré
comme très lisible, voire considéré comme source de trouble ou alors,
peut-être n'ai-je pas une fréquentation assez assidue du code "réel" ;)

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xavier Roche
Le #20331291
candide a écrit :
Juste une petite confirmation : si i est un entier et t est par exemple
un tableau d'entiers ou de flottants, une instruction du style
t[i++]++;



Il n'y a aucune ambiguité, en effet.

d'instruction dans du "vrai" code, peut-être n'est-ce pas considéré
comme très lisible, voire considéré comme source de trouble ou alors,
peut-être n'ai-je pas une fréquentation assez assidue du code "réel" ;)



Cela ne me semble pas excessivement opaque comme code, même si un petit
commentaire peut être le bienvenu.
-ed-
Le #20331341
On 10 oct, 23:02, candide
Bonjour

Juste une petite confirmation :  si i est un entier et t est par exempl e
un tableau d'entiers ou de flottants, une instruction du style

t[i++]++;

n'est pas indéterminée, n'est-ce pas ?



Correct, mais pas très lisible. OK pour les C-geek...
Wykaaa
Le #20331401
candide a écrit :
Bonjour


Juste une petite confirmation : si i est un entier et t est par exemple
un tableau d'entiers ou de flottants, une instruction du style

t[i++]++;


n'est pas indéterminée, n'est-ce pas ? Par exemple si i vaut
initialement 42, l'instruction ci-dessus incrémente d'une unité la
valeur de t[42] tout en passant à la case suivante du tableau t ie la
case 43. Je pose aussi la question car j'ai rarement lu ce genre
d'instruction dans du "vrai" code, peut-être n'est-ce pas considéré
comme très lisible, voire considéré comme source de trouble ou alors,
peut-être n'ai-je pas une fréquentation assez assidue du code "réel" ;)

Merci.



Typiquement du code qui ne devrait être autorisé par aucun langage et
source de confusion.
Mais ce n'est rien à côté des horreurs qui peuvent être écrites (il faut
le faire exprès quand même !):
t[--i] += t[i++]
espie
Le #20331461
In article Wykaaa
Typiquement du code qui ne devrait être autorisé par aucun langage et
source de confusion.



Tu exageres, c'est quand meme tres lisible quand on connait C...
candide
Le #20332201
Wykaaa a écrit :


t[--i] += t[i++]



Hum, ça sent quand même méchamment le comportement indéterminé ton truc,
ce qui n'était pas le cas de mon "vilain" t[i++]++.
Wykaaa
Le #20332191
candide a écrit :
Wykaaa a écrit :


t[--i] += t[i++]



Hum, ça sent quand même méchamment le comportement indéterminé ton truc,
ce qui n'était pas le cas de mon "vilain" t[i++]++.



Ben oui, c'est pour montrer les horreurs qu'on peut écrire en C...
Wykaaa
Le #20332281
Marc Espie a écrit :
In article Wykaaa
Typiquement du code qui ne devrait être autorisé par aucun langage et
source de confusion.



Tu exageres, c'est quand meme tres lisible quand on connait C...



Lisible certes, mais sémantiquement parlant ?
candide
Le #20332411
Wykaaa a écrit :

t[--i] += t[i++]



Hum, ça sent quand même méchamment le comportement indéterminé ton truc,
ce qui n'était pas le cas de mon "vilain" t[i++]++.



Ben oui, c'est pour montrer les horreurs qu'on peut écrire en C...




"horreur" n'est pas dans la Norme ;)

Bon de toutes façons, je n'arrive pas à voir quelle est l'_intention_ du
code que tu as rapporté (je suppose que tu as lu ce genre de code
quelque part donc il correspondait à une certaine intention déterministe
chez celui qui l'a écrit).
espie
Le #20332701
In article Wykaaa
Marc Espie a écrit :
In article Wykaaa
Typiquement du code qui ne devrait être autorisé par aucun langage et
source de confusion.



Tu exageres, c'est quand meme tres lisible quand on connait C...



Lisible certes, mais sémantiquement parlant ?



Oui. C'est juste une expression un peu longue. La comme ca, je ne vois
pas d'algo ou ca pourrait servir, mais ca ne me semble pas tres tordu.
C'est pas pire que d'ecrire une longue expression arithmetique sans la
decouper en sous-morceaux.
Wykaaa
Le #20332761
Marc Espie a écrit :
In article Wykaaa
Marc Espie a écrit :
In article Wykaaa
Typiquement du code qui ne devrait être autorisé par aucun langage et
source de confusion.


Tu exageres, c'est quand meme tres lisible quand on connait C...


Lisible certes, mais sémantiquement parlant ?



Oui. C'est juste une expression un peu longue. La comme ca, je ne vois
pas d'algo ou ca pourrait servir, mais ca ne me semble pas tres tordu.
C'est pas pire que d'ecrire une longue expression arithmetique sans la
decouper en sous-morceaux.



La longueur d'une expression, c'est sa forme, sa syntaxe. Je te parlais
de sémantique :-(
Publicité
Poster une réponse
Anonyme