There is also a difference between &quot;implementation-defined&quot; and &quot;unspecified&quot;. Look it up!<p>The former is similar to the latter, only it must be documented. Unspecified behaviors imply some choice from among alternatives which need not be documented. (Like the order in which the argument expressions of a function are evaluated.)