Sim 2005
Messages postés86Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention18 juillet 2009
-
7 juil. 2007 à 21:58
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 2012
-
18 juil. 2007 à 14:27
Dans une source j'ai trouvé l'opérateur : . A quoi cela correspond-il (est-ce bien un opérateur).
Voici le lien vers la source : http://www.cppfrance.com/code.aspx?ID=25450 et le morceau de code concerné :
Je ne vois pas comment fonctionne cette zone (surlignée en gras)... Elle ne fait pas non plus parti d'un switch case qui aurait pu justifier l'utilisation du :.
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 7 juil. 2007 à 22:03
J'ai jamais utilisé ca en C/C++, mais c'est surement un label. Cad un point d'arrivé pour un "goto", une fonction qui n'a plus de raison d'etre utilisé sauf pour faire du code illisible.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 7 juil. 2007 à 22:20
Mon but ici n'est pas de démarrer un autre débat sur les goto.
"une fonction qui n'a plus de raison d'etre..."
Est encore utilisé pour les sorties de boucles. Exemple:
while(1) {
while(1) {
...
if(x) goto fin_boucle;
}
...
}
fin_boucle:
".. utilisé sauf pour faire du code illisible"
Dans certain cas, l'utilisation des goto peut générer un code beaucoup plus lisible qu'un enchainement de 10 if par exemple.
if(x) {
...
if(y) {
...
if(z) {
...
if(x1) {
... // <- Ça commence à faire beaucoup de tab ici
}
}
}
}
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 7 juil. 2007 à 22:48
Un enchainement de 10 if ne doit pas arriver. Dans quelle sorte de programme une telle structure apparait ? J'ai jamais vu un truc pareil.
Pour l'imbrication des boucles, je suis d'accord ca "peut" servir. Mais devoir sortir de deux boucles en meme temps en les court circuitant, j'ai jamais eu besoin et pourtant j'en suis pas a ma première ligne de code. Le seul cas que j'imagine, c'est dans le cas des manipulations de tableau de tableaux mais dans ce cas, c'est pas un goto, mais un return qu'on trouvera plutot.
Enfin bref, le jour ou j'aurais besoin d'un goto, je viendrais poster ici :)
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 7 juil. 2007 à 23:10
Les 10 if, c'était pour ce faire une idée :). Reste quand même que 3 ou 4 if ensemble, ça commence à faire beaucoup en terme d'espace (les tab), de caractère (le accolades par ex) etc.
Pour ce qui est de court-circuiter une double boucles, je n'arrive pas à trouver d'exemple réel mais je peux t'affirmer que j'ai déjà eu à en coder.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 7 juil. 2007 à 23:36
Salut,
label:
if(condition) goto label;
c'est clairement un do while.
Parfait
exemple du goto qui sert a rien et qui rend le code moche et illisible.
Le C propose plusieurs types de boucles, pourquoi s'en priver ?
Le must c'est quand meme de voir ca dans les codes snippets...
if(!string || !*string || !e || !*e) return 0; // <- À retirer dans un code sûr
c = string;
while(1) {
p = e;
do
if(*p == *c) {
c++;
p = e;
}
while(*++p);
*string = *c;
if(*c) {
string++;
c++;
}
else break;
}
return string; // Retour sur 0 de fin de chaîne
}
Cependant, cette fonction continue inutilement de tester les caractères excluent sur le 0 de fin de chaine de string. On peut corriger ce problème en ajoutant un && *c au while(*++p) mais on se trouve à effectuer un double test à ce niveau donc... De plus, on doit ajouter un test (pour les codes non sûr) de plus pour savoir si string n'est pas vide.
Finalement, je sais pas pour toi, mais moi je trouve ça plus "illisible" qu'avec un simple goto
" y'a 5000 facons de coder un truc comme ca"
C'est vrai mais le problème c'est de trouver la meilleur et la meilleur nécessite peut-être un goto.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 8 juil. 2007 à 02:24
C'est sûr mais pour l'instant, personne ne m'a encore montré que mon code pouvait être codé sans goto avec la même "lisibilité" et sans code ASM supplémentaire.
BruNews >> S'il y a un moyen de recoder mon code sans goto, tu pourrais sans doute être capable de le faire non ?