Verwendet ihr "GoTo's"?
-
Ja, ich benutze es. Vermutlich nur so alle 2-3 Jahre, aber manchmal kommts vor.
-
Mr Evil schrieb:
- erst gar nicht soweit kommen lassen das man in 3 schachteln steckt
- erst gar nicht soweit kommen lassen das man in 3 schachteln steckt und zudem alle 3 mit einmal abbrechen will/mussUnd wie mache ich das, wenn ich über mehrere (bzw. mehrdimensionale) Arrays iterieren muss?
-
Dann bricht man in den seltensten Fällen ab. Oder hast Du mal ein griffiges Beispiel, wo es nicht auch ein return täte?
Ich habe goto in 10 Jahren bisher zwei mal verwendet. Einmal aus Faulheit (ist später rausgeflogen) und einmal, weil ich keine besser lesbare Lösung fand. Und ein künstliche eingeführtes Abbruch-Flag statt einem goto finde ich z.B. nicht wesentlich besser lesbar.
-
Mich würde mal interessieren, ob jemand die Erweiterung von gcc "Labels as Values" schon mal irgendwie irgendwo benutzt hat/benutzen musste? Also nicht nur mal zum Ausprobieren, sondern "echt" für irgendein Projekt o.ä.?
Sieht ungefähr so aus:void Gaga() { void *ptr = NULL; if (irgendein Fehler) { ptr = &&Error; /* Setze den Pointer auf die Sprungmarke Error */ } else { ptr = &&Ende; /* Setze den Pointer auf die Sprungmarke Ende */ } goto *ptr; /* gcc unterstützt pointer auf Sprungmarken :) */ Error: /* Fehlerbehandlung */ ... Ende: /* Funktionsende */ return; }