On Mon, Jan 25, 2016 at 01:47:46PM +0100, Didier Kryn wrote: > Le 25/01/2016 13:23, Rainer Weikusat a écrit : > > while (*r) if (*r++ == '/') n = r; > > Does it mean > > while (*r) > { > if (*r == '/') > { > n = r; > r++; > } > } > > or > > while (*r) > { > if (*r == '/') > { > r++; > n = r; > } > }
Neither. The incrementation in the original is not condiitional on the rquality test. Which means that in the original, n gets assigned the address of the character *after* the last '/' found. In the other versions you get an infinite loop as soon as you encounter a character that isn't '/'. -- hendrik > > > I think the second answer is the good one. It is more readable > and less error-prone than your example and the compiler will produce > exactly the same instructions. You don't need to do the work of the > compiler; it does it better. Better concentrate on writing programs > easier to read and less error-prone. These pre-increment and > post-increment instructions should be deprecated - I already > advocated that on this list, although it is not the place :-) > > The reason why seasonned programmers prefer the kind of > expression you wrote, with post-increment, is a perfect example of a > style dictated by pure aesthetics. This an error I used to make when > I was younger, but, with age and learning, I have found true reasons > to do otherwise. > > Didier > > Didier > > _______________________________________________ > Dng mailing list > Dng@lists.dyne.org > https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng