Next: , Previous: , Up: Order of Execution   [Contents][Index]


10.5 Ordering of Operands

Operands and arguments can be computed in any order, but there are limits to this intermixing in GNU C:

These rules don’t cover side effects caused by postincrement and postdecrement operators—those can be deferred up to the next sequence point.

If you want to get pedantic, the fact is that GCC can reorder the computations in many other ways provided that doesn’t alter the result of running the program. However, because they don’t alter the result of running the program, they are negligible, unless you are concerned with the values in certain variables at various times as seen by other processes. In those cases, you can use volatile to prevent optimizations that would make them behave strangely. See volatile.