Programmierstil mit goto
-
Gute Programmierer benutzen nie goto. NIE!!!!
-
Kenner guter Programmiere schrieb:
Gute Programmierer benutzen nie goto. NIE!!!!
Aha, zwei Mittelmaeßige Programmierer die sich aber für gute halten. ^^
-
Sehr gute Programmierer kennen kein goto!
Die freigewordenen Gehirnzellen haben schließlich Besseres zu tun
-
Herrmann schrieb:
Also ich persönlich habe bisher noch keinen Fall gesehen, bei dem man goto nicht durch eine elegantere Lösung ersetzen konnte. Ich lasse mich aber gerne eines Besseren belehren.
das klassische beispiel: heraushüpfen aus einer tiefen verschachtelung mit anschliessenden aufräumarbeiten. natürlich geht das auch ohne goto, aber umständlicher. ein kleines goto statement ist dabei nun mal das eleganteste was geht.
-
Aber ist das nicht der klassische Fall für eine Exception?
-
BinSchonWeg schrieb:
Aber ist das nicht der klassische Fall für eine Exception?
Wir sind hier im C Forum.
In C braucht man es selten.
In C++ nie.
-
BinSchonWeg schrieb:
Aber ist das nicht der klassische Fall für eine Exception?
Nein. Schon gar nicht in ANSI C.
-
BinSchonWeg schrieb:
Aber ist das nicht der klassische Fall für eine Exception?
deshalb wurden exceptions ja erfunden: damit die goto-gegner keine gotos benutzen müssen.
-
Eben, bevor man goto verwendet um aus ner tiefen Schleife zu springen, sollte man zur Exception greifen:
struct ReturnFromLoop {}; try { for(;;) while(bar.isActive() for(...) { if( foo.abort() ) throw ReturnFromLoop(); } } catch( ReturnFromLoop& e ) { }
man beachte die Eleganz im Vergleich zu einem goto
</ironie>
-
mit setjump / lonjmp...(#include <setjmp.h>) exceptionhandler
mfg
-
Spezialfall: Wenn man das GCC-Feature "Jump table" benutzt, braucht man goto. Ist kein ANSI, hilft aber enorm, wenn man Performance braucht.