Le 25/01/2016 19:11, Rainer Weikusat a écrit :
Didier Kryn <[email protected]> writes:

[...]

A multi-line version could look like this:

while (c = *r) {
        ++r;
          if (c == '/') n = r;
}

     It might be done with a for loop.  eg:

     for ( ; *r ; ++r) if(*r=='/') n=r;
n++;
[...]

The for loop is the best construct for a loop with an incremental
cursor.
That's nicely exemplified by the fact that the code above does a
redundant increment (or did a redundant increment would it work, the {}
are missing)
There needs only be one increment of n at the end of the loop, but, maybe it should be:
    if(n) n++;
    because I guess n starts from 0.
  solely to work around the fact that the "for loop
mechanics" of checking the condition before the loop body is executed
and performing a "variable increment step" afterwards are ill-suited to
this particular problem ...


I must agree, and I didn't think it was true before reading your example, that the post-increment may have a true semantic value beyond an attempt to optimise execution which would be futile. Which doesn't mean I'm convinced it :-)

    Didier


_______________________________________________
Dng mailing list
[email protected]
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to