Andrey Hristov wrote:
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

Attachment: signature.asc
Description: OpenPGP digital signature



Reply via email to