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

Explication de goto en c svp

zebullon
zebullon
Niveau 3
13 novembre 2004 à 15:34:12

Bonjour ! !
Voila dans mon livre " le langage c" l´auteur parle de goto, il montre la syntaxe générale mais il n´explique pasle fonctionnement de goto. Pouvez vous m´expliquez comment marche goto est à quoi sert il svp. :merci:

ps: je sais que l´utilisation de goto n´est pas conseillé mais c´est juste pour savoir.

Chaos_Clad
Chaos_Clad
Niveau 10
13 novembre 2004 à 15:35:44

Goto signifie " aller à" en anglais, ça signifie que tu demandes à ton programme d´aller quelque part dans le programme ( un label en l´occurence) que tu auras déclaré à l´avance.

Je crois que c´est ça :)

MrGoTo
MrGoTo
Niveau 8
13 novembre 2004 à 17:45:54
  1. include < stdio.h>

int main()
{
int i;
printf("Mon putain de fournisseur d´acces\n");
printf("N´a pas vraiment pas realise\n");
printf("Qu´avec ces conneries\n");
printf("Il m´a pourri la vie\n");

printf("\nApres ces deux mois d´absence sur l´net\n");
printf("Je reviens en force pour tout break\n"); / * J´ai eu du mal pour cette rime */
printf("Il vont le payer très chéro\n");
for ( i = 0; i < 2; ++i)
printf("Car jvais tout detruire a coup de goto\n");
return 0;
}

MathieuN7
MathieuN7
Niveau 10
13 novembre 2004 à 20:23:53

:rire: Qui d´autre que MrGoto pouvait te parler des goto??? :-d

PS: moi jle prononce gautou... :doute:

zebullon
zebullon
Niveau 3
13 novembre 2004 à 21:15:13

:lol:

neg282
neg282
Niveau 7
15 novembre 2004 à 21:00:33

ne met jamais de goto dans ton code. C´est de la mauvaise programmation. Goto est un mot clé du C seulement parce qu´il était utilisé dans des langage plus vieux. Aujourd´hui, il est inutile.

piinpin08
piinpin08
Niveau 3
15 novembre 2004 à 22:48:45

Le goto peut servir dans des cas trés particuliers tel que la programmation d´automates.

Il s´impose lors des applications temps réels dans lesquels il est nécessaire de faire des branchements trés rapidement a certains points du programme.

Mais dans la plupart des autres cas il peut facilement être évité et son utilisation conduit souvent a de la programmation " spaghetti".

dnob700
dnob700
Niveau 10
15 novembre 2004 à 23:35:38

c´est pourri de répéter bêtement ce que vous ont appris des conservateurs extrémiste de la programmation structuré anti-goto.

il y a des cas où le goto est nécessaire, il faut savoir reconnaitre ces cas et le cas échéant utiliser cette instruction. Ne pas le faire et utiliser des syntaxe lourde et inutile est pire que d´en utiliser trop à mon gout car ça nuit encore plus à la lisibilité du programme.

dans l´exemple donné ci-dessus, il est évident qu´un for aurait bien mieux fait l´affaire, mais lorsqu´il s´agit de sortir d´un coup de plusieurs boucle imbriquées ( voire même de sortir de plusieurs boucle en évitant certaines section de code)

Kelios
Kelios
Niveau 8
15 novembre 2004 à 23:44:44

Oui y´a ce vieux défaut du C/C++ pour breaker de plusieurs boucles ou ifs ou n´importe quoi, embriqués... parce que le break; ne marche pour qu´un!
Fichtre alors, si là le goto n´est pas utile, qu´on me cuise à la broche!

Kelios
---------

jarose
jarose
Niveau 10
16 novembre 2004 à 16:34:35

D´accord avec dnob, que reprochez vous à un code contenant des goto ?
Cette instruction peut être justifié si elle n´est pas utilisé abondamment. Dans beaucoup de cas, utiliser un goto rend la chose plus claire que si on avait essayé de l´éviter.

Faut arrêter de répéter bêtement ce qui est dit dans certains manuels.

kufa
kufa
Niveau 9
16 novembre 2004 à 17:31:43

Je n ai jamais eut a utiliser de goto dans aucun de mes progs. Je ne dis pas qu ils ne sont pas utiles, parfois, mais je n en ai jamais eut l utilite.. Quitte a revoir son code, ya toujours moyen de les eviter, et surtout moyen de rendre son code plus lisible.
C est d ailleurs tres chiant de calculer la complexite ou ecrire pre/post/invariants dans un algo qui utilise des gotos. Je conseillerais juste de les eviter lorsque on peut les eviter :)

kufa
kufa
Niveau 9
16 novembre 2004 à 17:41:03

Petite precision:
" mais lorsqu´il s´agit de sortir d´un coup de plusieurs boucle imbriquées"

Faut toujours verifier si on peut appeler une sous routines a la place, si les deux boucles sont vraiment independantes etc..
Pourquoi vouloir arreter deux boucles simultaneement? ( ce qui se fait d ailleurs sans goto en ajoutant une condition dans les if/while) Si cela est vraiment necessaire, le code est il bien subdivise, ne peut on pas faire un return a la place?

" ( voire même de sortir de plusieurs boucle en évitant certaines section de code)"
Ouais jamais vu une utilisation concrete d un goto dans ce genre de cas, enfin dans du code dit propre.

L utilisation majeure des goto reste celle de codeurs voulant faire un petit hack pour faciliter l ecriture de leur programme, sans revoir leur algo ou leur fonctions. Mais bien entendu comme je le disais, les goto peuvent se reveler bien utiles dans certains cas, lorsque leurs utilisations sont correctes. Mais j ai rarement vu de code propre utilisant des gotos..

Je place tout de meme le goto au meme niveau que le noalias ; )

dnob700
dnob700
Niveau 10
16 novembre 2004 à 22:46:32

le goto est ligne 26 : http://wall.cours-info.net/?id=308

enlever le goto rajouterait un test qui d´une aprt ralentirait le programme et ensuite serait, à mon gout, moins lisible.

si tu as des suggestion pour remplacer ce goto, je suis bien sur prèsà les écouter.

MrGoTo
MrGoTo
Niveau 8
17 novembre 2004 à 18:51:53

Meuh oui VIVE LE GOTO !

kufa
kufa
Niveau 9
18 novembre 2004 à 11:56:45

Voila une premiere methode:
http://wall.cours-info.net/?id=310
( libre cours d optimiser l algo avec des inline et forcer l inline, mais vu que l algo de base est pas optimise, je sais pas si ca va vraiment aider)

Deuxieme methode:
http://wall.cours-info.net/?id=311

Dans chacune de ses methode, je n ai qu un seul setpixel; imaginons ce que ta methode deviendrait si je devais appeler 5 fonctions differentes ( avec des parametres de tes boucles par ex) qui ne peuvent pas etre regroupees: je me trouverais avec un gros ctrl-c/v du code, super..
Si on veut essayer de reduire la taille de l innerloop pour le cache, mauvaise idee..

dnob700
dnob700
Niveau 10
18 novembre 2004 à 23:58:47

je ne comprend pas exactement ce que tu veux dire, c´est mon code qui n´est pas bon pour éduire la tailel, je ne comprend pas dans quel situation.

c´est vrai que la première méthode est pas mal ( il manque un break ds la 2ième mais je suppose que c´est jute un oubli).

la seul chose que ej me demande c´est que fait le compilo quand on inline ce genre de fonction, est ce qu´il se contente de rajoutter le code de la fonction à la place de l´appel, parce que dans ce cas là, est ce qu´il réaffecte toute les variable, où est ce quil devine c´elle qu´il peut garder ?

et est ce que créer une variable à un niveau local prend du temps ou pas ?

merci qd même, c´est instructif comme manière de procéder ( e pense pas assez à faire des fonctions dans ce genre de cas).

jarose
jarose
Niveau 10
19 novembre 2004 à 03:52:43

Voué l´exemple de dnob était pas le meilleur. On peut tout le temp se passer du goto, mais des fois ça peut rendre le code plus compréhensible, comme par exemple pour gérer les erreur. pour tout vous dire, j´ai utilisé une seule fois un goto.

Sinon, ben non dans une fonction locale il duplique pas le code.

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