Robert Cummings wrote:
Unmaintainable because of the ability to write cryptic code. There's nothing cryptic about:
...code
goto cleanup:
...code
cleanup:
do { .....code... if (something) break; ...code.... } while (0); ...cleanup code...
This works for one level, but imagine:
... code ... (which exits with goto_out)
if (!alloc x) goto out;
... code ... (which exits with goto_outfreex)
if (!alloc y) goto out_freex;
... code ... (which exits with goto_outfreey)
if (!alloc z) goto out_freey;
... code ...
free z; out_freey: free y; out_freex: free x; out: print bye;
For this you'll need 3 nested do{}while(); loops and your indention is so far to the right, that you can barely write more than two more words on a line.
This really looks a lot cleaner with goto.
Jan
signature.asc
Description: OpenPGP digital signature