Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Re: Re: block-based programming...

by elusion (Curate)
on Apr 22, 2004 at 15:24 UTC ( #347464=note: print w/replies, xml ) Need Help??

in reply to Re: Re: block-based programming...
in thread block-based programming...

And I would make a small change on that to use a break and reduce the level of indentation.
while (close(soc) < 0) { if (errno == EINTR) continue; perror("close"); exit 1; }
I hope that's valid C. I don't really use it much.

Replies are listed 'Best First'.
Re: Re: Re: Re: block-based programming...
by flyingmoose (Priest) on Apr 22, 2004 at 15:46 UTC

    Here is why I did that though -- continue is just a goto by any other name. It leads to pollution of readable conditionals and loops just as the way a real goto causes an avoidance of conditionals and loops.

    The end result of using continue in long blocks of nested code is code that cannot be easily skimmed or traced .. a lesson learned by reading many many thousands of lines of bad C code. Especially when the level of nesting exceeds one, continue becomes a jump. Continue with block labels is even worse -- it's a PURE goto, only more politically correct. Someone will say "I can handle the power!", but I say "think of the children!".

    Also, your loop (by looking at indentation) implies that the perror() is in the main path of code execution, because it is masked by the indentation of the if -- which leads me to think "why is he executing exit periodically in a loop". My example avoids that by making the perror the exception rather than the rule. Subtle, but there was a method to my madness there. And of course, I am mad. There is no doubt about that.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://347464]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2019-06-24 08:52 GMT
Find Nodes?
    Voting Booth?
    Is there a future for codeless software?

    Results (97 votes). Check out past polls.