On Thu, 28 Jul 2011, Jari Häkkinen wrote:
Are you sure about that? I just tried it with a little example and at least gcc compiles both variants to the exact same assembly code. Tried it with and without -O2.That would freak me out. Doesn't "++j" mean "increment j, then test" whereas "j++" means "test j, then increment"?No, for a for loop for ( [1]; [2]; [3] ) where [3] is ++j will increment j before use. However, in an if-statement the complete statement [3] is evaluated before the test [2] is done. If the compiler is smart it will produce the fastest binary code regardless ++j or j++. However, if the [3] is more complicated like a hypothetical i = ++j + k the compiler will most probably generate different binary code (compared to i = ++j + k).
Right, but j++ will increment _after_ it's used, correct? So how could ++j vs j++ generate the same assembly code and be correct?
g. -- Proud owner of F-15C 80-0007 http://www.f15sim.com - The only one of its kind. http://www.simpits.org/geneb - The Me-109F/X Project Some people collect things for a hobby. Geeks collect hobbies. ScarletDME - The red hot Data Management Environment A Multi-Value database for the masses, not the classes. http://www.scarletdme.org - Get it _today_! Political correctness is a doctrine, fostered by a delusional, illogical minority, and rabidly promoted by an unscrupulous mainstream media, which holds forth the proposition that it is entirely possible to pick up a turd by the clean end.
------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey
_______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel