NOTE: Strictly speaking, no C dialect
absolutely requires to declare a function before it is used. If a call to
a previously undeclared function is seen, the compiler assumes it
is a function
returning int and, in the case of ANSI C/C++, makes assumptions
about the types of the actual parameters appearing in the call. This serves as an
implicit function declaration.