On Sat, Nov 14, 2009 at 12:09:24PM -0800, cr...@animalhead.com wrote: <snip> > CODE: > while (i < add_count) addSVs[i++] = ST(i+1); > > The C spec is not definitive on when some operations should happen. > The && and || operators are defined to be time-sequential, in that > everything on the left side happens (is evaluated) before anything > on the right side (which doesn't happen if the result of the && or || > can be determined from the left result).
Well, it is definitive in the sense that it states explicitly the order of operations are undefined. The relevant term in standard-ese is "sequence point". I'm too lazy to crack open my copy of ISO C99, but the issue of sequence points comes up all the time on comp.lang.c. Here's the FAQ entry: http://c-faq.com/expr/seqpoints.html