GOTO ist nicht langsam
-
@thomas001 fix wie sau ist nicht unbedingt das richtige Argument für goto´s, außer man muss mit realtime Bedingugen und/oder embedded Systemen umgehen und ist in der Nähe der Leistungsgrenzen des Systems.
Modularer Code ist viel zu wichtig über die Lebenszeit eines Programms (10-15 Jahre) wegen der Wrtbarkeit das ich das ohne grund für Geschwindigkeit aufgeben würde.
-
@GotoLover
Weist du auch was static bedeutet und wieso es hier Sinn macht?PAD schrieb:
Um das Flamen noch ein bisschen anzuheizen:
Selbst C++ kommt nicht ohne aus, es hat dem ganzen nur einen schöneren Namen gegeben Der Try - Throw - Catch ist nicht anderes als eine erweitertes und sehr viel leistungsfähigeres "goto"Das gleiche kann man von for, while und do while sagen. Allerdings sind die Schleifenkonstrukte eigentlich viel näher am goto als die C++ Ausnahmen.
-
Irgendwer schrieb:
@GotoLover
Weist du auch was static bedeutet und wieso es hier Sinn macht?Ich schätze du verwechselst das mit "inline"
-
GotoLover schrieb:
Irgendwer schrieb:
@GotoLover
Weist du auch was static bedeutet und wieso es hier Sinn macht?Ich schätze du verwechselst das mit "inline"
Nene. Guck mal:
a.cppstatic void loop(){}
b.cpp
static void loop(){}
c.cpp
static void loop(){}
Wer sein Program in genügend Module aufteilt der braucht keine elendlangen Funktionsnamen. Einfach immer den gleichen benutzen. Was du jetzt mit inline willst weis ich jetzt nicht.
-
Irgendwer schrieb:
Was du jetzt mit inline willst weis ich jetzt nicht.
Den Funktionsaufruf wegmachen.
PS: Ich bin "GotoLover", hab mich jetzt angemeldet
-
Das gleiche kann man von for, while und do while sagen. Allerdings sind die Schleifenkonstrukte eigentlich viel näher am goto als die C++ Ausnahmen.
Mag schon sein, bzw ist auch so das, die in Assembler als jmp ausgeführt werden. Aber ich glaubeh kaum das einer eines von diesen Konstrukten durch goto ersetzt.
Der häufigste Anwendungsfall ist wohl das schlagartige Beenden eine tiefen Verschachtelung (zum Beispiel Fehler), um sich dieses bescheuerteif (error) break;
zum herauswühlen aus den Schleifen zu sparen.
Und dies auch nur um konform zu irgendwelchen Standards zu sein, egal wie unübersichtlich das wird.
-
Sowas ähnliches wurde bestimmt schon genannt hier, GOTO ist gut um überflüssige Sachen auszulassen.
... void *p = malloc(...); if (aktion1(p) == ERROR) goto ende; if (aktion2(p) == ERROR) goto ende; if (aktion3(p) == ERROR) goto ende; if (aktion4(p) == ERROR) goto ende; aktion5(p); ende: free(p); ...
-
@Bug: das kannst du auch goto-frei haben:
void *p = malloc(...); do { if (aktion1(p) == ERROR) break; if (aktion2(p) == ERROR) break; if (aktion3(p) == ERROR) break; if (aktion4(p) == ERROR) break; aktion5(p); } while(0); free(p);
Nicht daß ich das für besser halte - aber die while-freaks freuen sich (hoffentlich
)
@PAD: und vielleicht noch, um den Schleifeneintrittspunkt in die "Mitte" des Rumpfes legen. Ist so 'ne Angewohnheit aus Assembler-Zeiten.
-
Bug schrieb:
Sowas ähnliches wurde bestimmt schon genannt hier, GOTO ist gut um überflüssige Sachen auszulassen.
lol, du elendiger noob, lern erst einmal proggen und melde dich dann nochmal (also so in 10 jahren)
-
profiprogger schrieb:
lern erst einmal proggen
"PROGGEN" ???
Das überlass ich lieber Blödbacken wie dir!