...
If the declaration of an identifier for an object has file scope and no storage-class specifier, its linkage is external.
If an object, such as a function, does not need to be visible outside the current scope, it should be hidden by being declared as static
. This helps create more modular code and may expose hidden assumptions about abstraction.
...