Goto c'est formidable, il faudrait l'utiliser plus souvent
Goto, c'est plus performant que les procédures, les fonctions ou la POO
On ne doit pas utiliser Goto parce que mon prof l'a dit
Utiliser Goto augmente le risque de bogues
Utiliser Goto rend le code illisible
On ne doit pas utiliser Goto pour préserver la beauté du code
Je refuse de voter pour ce sondage idiot
Autre avis (précisez)
Pas d'avis
Parce qu'il est plus fréquent de voir des bugs causés par des résultats intermédiaires qui auraient dû être négatifs mais ne le sont pas à cause d'opérandes non-signées, que de voir des bugs causés par des nombres supérieurs à 2^31.
Par ailleurs il y a un peu plus de possibilités d'optimisation avec les entiers signés car le compilateur est libre d'introduire des soustractions tant que le risque d'overflow n'affecte pas l'issue (a < x < b peut devenir (x - a) < (b - a) avec une comparaison non-signée).
Accessoirement en C++, il est plus rapide sur certaines architectures d'utiliser des compteurs "int" que "uint". C'est parce que le comportement de l'overflow des "int" est indéfini alors que celui des "uint" est défini. Les GPU tirent par exemple profit de cette liberté.
bonjour, un GOTO n'a jamais fait de mal sauf si c'est un principe de programmation . alors goto ou not goto si cela était si mauvais c++ x17 ou 14 il aurait été retirer , non le goto n'est responsable de rien et peut être tres utils .......
Salut,
Trouvé dans un mickeymouse de test d'un module à brancher sur USB :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 if (!vid && !pid && (interface == INTERFACE_ANY)) { ftdi_set_interface(ftdi, INTERFACE_ANY); struct ftdi_device_list *devlist; int res; if ((res = ftdi_usb_find_all(ftdi, &devlist, 0, 0)) < 0) { fprintf(stderr, "No FTDI with default VID/PID found\n"); goto do_deinit; } if (res == 1) { f = ftdi_usb_open_dev(ftdi, devlist[0].dev); if (f<0) { fprintf(stderr, "Unable to open device %d: (%s)", i, ftdi_get_error_string(ftdi)); } } ftdi_list_free(&devlist); if (res > 1) { fprintf(stderr, "%d Devices found, please select Device with VID/PID\n", res); /* TODO: List Devices*/ goto do_deinit; } if (res == 0) { fprintf(stderr, "No Devices found with default VID/PID\n"); goto do_deinit; } }
Sauf que tu oublies l'une des utilités d'un compilateur : compiler du codes auto-générés.
"Goto" n'est absolument pas conseillé dans du code écrit à la main concernant 99% des programmeurs par contre rien ne peut remplacer sa flexibilité et puissance brute pour auto-générer des structures différentes et plus complexes qu'un "if" ou "while". Donc cela reste bien utile mais cela reste quand même mauvais de l'utiliser manuellement.
Les structures conditionnelles et les boucles n'ont rien à voir avec l'utilisation de l'instruction GOTO. Le Qbasic contenait toutes ces structures. Par contre, pour autant que je me rappelle, pas de fonctions. La était la vraie lacune.Depuis lors, on a commencé à recourir à des structures comme les conditionnelles (if .. then .. else ..) ou les boucles (for, while, etc.) qui font partie intégrante de tous les langages de programmation impératifs modernes.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager