Kanibal
Lt. Commander
- Registriert
- Dez. 2011
- Beiträge
- 1.032
Du lieferst Dir da das beste Argument selbst :-) #gotofail ist dir sicher ein Begriff. Das Problem mit goto ist halt, dass du Spaghetti-Code produzierst, der schwierig wartbar und fehleranfällig ist. Sieht Edgar Dijkstra ähnlich: "Go To Statement Considered Harmful".asdfman schrieb:"Goto ist verpönt" ist so ein sinnloses Dogma. Sicher kann man damit üblen Scheiß machen, aber gerade für OPs Problem halte ich es für absolut legitim, goto zu benutzen.
Den oberen Use-Case kann man beispielsweise so umschreiben:
Code:
char *p = malloc(BUFSIZ);
char *q = malloc(BUFSIZ);
char *r = malloc(BUFSIZ);
if (p && q && r) {
/* Do some other work... */
}
free(p);
free(q);
free(r);
Als Faustregel würde ich sagen: goto nicht verwenden, außer man kann sinnvoll begründen, warum es in genau diesem speziellen Fall notwendig ist.