title: extern storage class specifier
body: <p>Section 7.1 of the C++ Standard mentions about 'extern' as a storage class specifier.</p>
  
  <blockquote>
    <p>N3126 - "The extern specifier can be
    applied only to the names of variables
    and functions. The extern specifier
    cannot be used in the declaration of
    class members or function parameters.
    For the linkage of a name declared
    with an extern specifier, see 3.5. [
    Note: The extern keyword can also be
    used in explicit-instantiations and
    linkage-specifications, but it is not
    a storage-class-specifier in such
    contexts. —end note ]</p>
  </blockquote>
  
  <p>I understand about this keyword and it's use in the context of 'linkage specification', but I am unable to get a grasp on the use of 'extern' as a storage specifier.</p>
  
  <ol>
  <li>Don't all 'extern' names have static storage duration? </li>
  <li>If Answer to 1 is yes, then why this redundancy? C Compatibility?</li>
  </ol>