An identifier can be classified as externally linked, internally linked, or not-linked.
An identifier that is classified as externally linked can includeincludes identifiers:
- An identifier whose declaration contains the storage-class specifier extern, where no prior declaration of that identifier is visible.*
- An identifier for a function whose declaration contains no storage-class specifier.
- An identifier for an object with file scope whose declaration contains no storage-class specifier.
An identifier that is classified as internally linked can include:
...
includes identifiers whose declaration contains the storage-class specifier static.
An identifer that is classified as not-linked can include:
- An identifier declared to be anything other than an object or a function.
- An identifier declared to be a function parameter.
- A block scope identifier for an object declared without the storage-class specifier extern.
...