Using extern in a function declaration we can make a function such that it can used
outside the file in which it is defined.
An extern variable, function definition, or declaration also makes the described
variable or function usable by the succeeding part of the current source file. This
declaration does not replace the definition. The declaration is used to describe
the variable that is externally defined.
If a declaration for an identifier already exists at file scope, any extern declaration
of the same identifier found within a block refers to that same object. If no other
declaration for the identifier exists at file scope, the identifier has external