CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

aide pour le goto a c++

Passage
Passage
Niveau 10
26 décembre 2002 à 10:21:15

J´oubliais, joyeuses fetes à tous . ..

pirho
pirho
Niveau 6
04 janvier 2003 à 16:49:31

Passage je vais te donner un argument.

Imaginons un programme. Il contient un morceau de source ( ou une fonction) qu´on appelera A. Ce morceau de source ( ou fonction) contient des goto et des labels.

Le programmeur desire faire un second bout de code ( ou une seconde fonction) similaire au premier qu´on appelera B.

Quesqu´il vas faire? Un copier/coller. Mais voila, pour que son code soit correcte il doit modifier, en plus des noms de variables etc, ses labels et ses goto.

Biensur, avec des programmes de 10-15 lignes, sa ne pose pas de probleme, mais avec des programmes de 1000-1500 lignes, sa en pose, surtout si le programmeur qui rajoute la fonction ne connait pas tres bien le code, si ce n´est pas lui qui l´a écrit.

Voila pourquoi il est preferable, afin de rendre son code plus entretenable, et de ne pas avoir a se prendre la tête avec sa, de ne pas utiliser les goto.

D´autre part, si on utilise des macros, il ne faut pas utiliser de goto. On risquerait de voir son compilateur faire des erreurs car il y a plus d´un label du même nom si une macro contenant ds goto est utilisée plusieurs fois.

++
pirho

Passage
Passage
Niveau 10
06 janvier 2003 à 12:48:14

Amusant !

Bon si tu redefini une autre fonction ( dans le meme fichier) et qu´il s´y trouve les meme label 2 possibilités :
1/ Erreur de compilation du a la redefinition des labels...
2/ Le compilateur est tres gentil avec toi et resouds correctement les saut ( chaque saut se fait dans la fonction).
Bref l´erreur ( s´il elle se presente) est bien vite detecté a la compilation.

D´accord on n´utilise pas de goto dans une macro. ( quoique faut que j´y reflechisse peu y avoir des cas interressants ! !!)

Je remplace le mot programme dans ton mail par fichier, ( pasque si c´est d´une fonction dont il s´agit a plus de 100 ligne faut arreter la programmation et passer au canevas) et s´il t´arrive d´avoir 1000 voir 1500 ligne a mon avis c´est vraiment le maximum d´un fichier source, au dela c´est du suicide.

Petite ambiguité au vol :
* Le programmeur cherche a faire un copier coller d´une fonction,c´est donc qu´il l´a etudié . .. qu´il sait ce qu´il y a dedans,mais visiblement cela lui pose probleme au vu du volume du fichier . ...

1-0 pour toi quand meme quand au renomage des label.

Merci

Sarafan
Sarafan
Niveau 10
06 janvier 2003 à 13:10:16

Tu as mal lu ce qu´a écrit pirho.
Il a parlé de programme , pas de fichier.
Ce n´est pas la même , le source d´un programme peut facilement dépasser les 1000-1500 lignes(le code source de windows doit se compter en plusieurs million de lignes,par exemple),par contre le découpage de ce code source en plusieurs fichiers lui ne devrai pas dépasser une certaine limite(là où je bosse on essaye de se limité à 2000 lignes par fichier).

Pour revenir au dernier message de Uncursed et à ta réponse,les langages procéduraux implémente le goto car ils "hétitent" des langages des couches inférieures.

Pour la présence du goto il s´agit d´un reliquat du passé hériter du basic qui l´implémentait car à l´époque il n´y avait pas de notion de procédure , celui ou cuex qui ont inventés le basic ont dû s´inspiré de qui faisait à l´époque(l´assembleur) , les langages ont suivis ont gardés ce nom clé.

Coyooote
Coyooote
Niveau 5
06 janvier 2003 à 22:09:24

Je rejoins le point de vue d´Uncured pour le goto: il est vrai que cette instruction est une relique.
Pour reprendre l´image de la stratification des languges le goto est issu de l´assembleur puisque une instruction goto compilé est exacement 1 instruction ( un "jmp"). Donc le goto est issu de l´asm.

Mais bon, est-ce une raison pour ne pas l´utilisé. Perso, j´ai été tanté de l´utilisé quelques fois mais j´ai toujours un petit sentiment de . .... comment dire.... culpabilité à l´écrire. Je me senter toujours obligé d´écrire 1 paragraphe de justifications avec une explication détaillée du pourquoi et du comment.

Pourquoi je me sens obligé d´expliquer comment ca marche... ba parce que j´ai peur que la personne qui va le relire va avoir du mal ( peut etre) à comprendre.

On ecrit un code d´une facon plutot qu´une autre pour 2 raisons :
-Pour que ca marche
-Pour qu´on puisse nous relire.

2 constations :
1- le goto n´est pas nécaissaire
2- le goto dans un code de relativement haut niveau est toujours sujet à grand débat.

Perso, je veux que mes codes ne soit sujet à aucunes discussions. Des personnes trouvent que le goto n´est pas nécessaire ( ils ont les arguments) ni sa place dans un code C/C++ -> je ne l´utilise pas.

Meme réflexion pour le break, car sortir d´une boucle sans passer par la condition initial ( c´est vrai que c´est une grosse sourse d´incomprehension a moi de lire le prog 3 fois ( je fais l´exeption pour case) )

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment