Prototype Declaration
Function prototype declaration should be made BEFORE the function is used.
If the declaration is outside any function, the declaration makes it known to all the functions after the declaration in the file.
If the declaration is inside a function A, the declared function B is known only to this function A.