in reply to Re^2: Use of uninitialized value in addition
in thread Use of uninitialized value in addition
while (expr1, expr2, expr3, expr4, expr5, expr6, expr7)
The ONLY time I use the comma operator is in the following way:
while ((print prompt), test-response-to-prompt)
How is this "opaque"?
My code prepends a single print statement in the "while", a very simple thing who's return value is ignored. Without the comma operator, I would have to prompt before the loop and then prompt before the next loop. This can lead to many prompt statements or calls to a prompt subroutine for each error condition instead of just "next;".
The print statement at the beginning has no effect upon the test-response-to-prompt code. Use of the comma operator avoids 2 or more other statements.
I avoid while(1) except in the case of servers. Those loops never exit. I consider your while(1) with multiple returns within the FOREVER statement (a typical #define for while (1)or for (;;)) to be confusing. You have to read the code to figure out what the "end of loop" condition really is.
I argue that it is better to put the "end of loop" condition in the "while" or "for" loop, right at the top rather than "burying it" within a FOREVER loop.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Use of uninitialized value in addition
by GrandFather (Saint) on Mar 30, 2010 at 03:52 UTC | |
by Marshall (Canon) on Mar 30, 2010 at 08:17 UTC | |
|
Re^4: Use of uninitialized value in addition
by ikegami (Patriarch) on Mar 30, 2010 at 04:16 UTC | |
by Marshall (Canon) on Mar 30, 2010 at 09:28 UTC | |
by ikegami (Patriarch) on Mar 30, 2010 at 14:41 UTC |