Section 7.1 of the C++ Standard mentions about 'extern' as a storage class specifier.
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 ]
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.
- Don't all 'extern' names have static storage duration?
- If Answer to 1 is yes, then why this redundancy? C Compatibility?