title: Undefined vs. Unspecified vs. Implementation-defined behavior
body: <p>Wikipedia has pages about <a href="https://en.wikipedia.org/wiki/Undefined_behavior" rel="nofollow noreferrer">undefined</a> and <a href="https://en.wikipedia.org/wiki/Unspecified_behavior" rel="nofollow noreferrer">unspecified</a> behavior and links to them are plentifully used in comments and answers here, in SO.</p>
  
  <p>Each one begins with a note to <em>not be confused with other one</em> but except one no very clear sentence they didn't point at the difference between them.</p>
  
  <p>One of them gives an example (comparing addresses of 2 variables: <code>&amp;a &lt; &amp;b</code>) with the comment that this will results in <em>unspecified behavior in C++, undefined in C</em>.</p>
  
  <p>Is it possible to <em>pinpoint the substantial difference</em> between <em>undefined</em> and <em>unspecified</em> behavior in a <em>clear, understandable manner</em>?</p>