Campbell Ritchie wrote:C isn't completely standardised; for example the result ofis undefined and you can get different outputs from different compilers.
Actually, this is an example of standard undefined behavior; the C standard explicitly specifies that the effect of
i = i++ is undefined: "Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression. ... The behavior is undefined in the following circumstances: A 'shall' or 'shall not' requirement that appears outside of a constraint is violated. ..."
It is, however, correct to say that some behaviors are not completely specified. Annex J.1 to the Standard, titled "Unspecified behavior", lists many of the behaviors that are not specified.