A translation unit consists of one or
more declarations and function definitions.
Syntax  | 
  | 
translation-unit ::=
   external-declaration
   translation-unit external-declaration
 
external-declaration ::=
   function-definition
   declaration
Description  | 
  | 
A C program consists of one or more translation units, each
of which can be compiled separately. A translation unit consists
of a source file together with any headers and source files included
by the #include preprocessing directive. Each time the compiler
is invoked, it reads a single translation unit and typically produces
a relocatable object file. A translation unit
must contain at least one declaration or function definition.