Does a const in C always occupy storage?
<p>In "Thinking in C++" Bruce Eckel writes : </p>

<blockquote>
  <p>"In C, a const always occupies storage and its name is global."</p>
</blockquote>

<p>He also adds :</p>

<blockquote>
  <p>"In C a const always creates storage."</p>
</blockquote>

<p>In ANSI C standard (both C89 and C11) I read: </p>

<blockquote>
  <p>"The implementation may place a const object that is not volatile in a
  read-only region of storage. Moreover, the implementation need not
  allocate storage for such an object if its address is never used."</p>
</blockquote>

<p>Is "Thinking in C++" inaccurate or do I misunderstand the statement in the standard? Maybe what is stated in the book is only valid for an abstract machine?</p>