En C goto ne le permet pas, il faut passer par le couple setjmp/longjmp.
Ce qui est ultra casse-gueule, et mérite d'êtres expliqué si utilisé, mais a de rares use-case, tel que recoder des pseudo-exceptions en C. (et rendre fous qui voudrait déboguer ça).
Après les exceptions, c'est à peu près un goto, d'une fonction à une autre, mais avec des clean automatique, en plus. (et aussi forcent à sauter vers une fonction appelante, et pas le contraire).
Les generator function en js peuvent aussi s'apparenter à des goto, qui saute dans une autre function.
Bref oui, ce n'est pas ouf les goto entre des functions, mais au final la plupart des langages moderne en ont quelques utilités, si on n'a ni yield ni exeption, mais on en a l'utilité, ça reste aux dev de prendre soins de pas casser ça stack, et gérer ces ressources (et essayer de fuir le projet), mais peu encore être utils.
[^] # Re: Si vous voulez comprendre la haine du goto,
Posté par uso (site web personnel) . En réponse au lien Portage du jeu Akalabeth, avec le listing basic (qui pourrait heurter les plus jeunes d'entre vous). Évalué à 4. Dernière modification le 05 septembre 2023 à 11:20.
En C goto ne le permet pas, il faut passer par le couple setjmp/longjmp.
Ce qui est ultra casse-gueule, et mérite d'êtres expliqué si utilisé, mais a de rares use-case, tel que recoder des pseudo-exceptions en C. (et rendre fous qui voudrait déboguer ça).
Après les exceptions, c'est à peu près un goto, d'une fonction à une autre, mais avec des clean automatique, en plus. (et aussi forcent à sauter vers une fonction appelante, et pas le contraire).
Les generator function en js peuvent aussi s'apparenter à des goto, qui saute dans une autre function.
Bref oui, ce n'est pas ouf les goto entre des functions, mais au final la plupart des langages moderne en ont quelques utilités, si on n'a ni yield ni exeption, mais on en a l'utilité, ça reste aux dev de prendre soins de pas casser ça stack, et gérer ces ressources (et essayer de fuir le projet), mais peu encore être utils.