When a function or procedure is called, the calling code and the function or procedure
being called must agree on three basic things:
- The way parameters of different types are passed.
- The way function return results are passed back to the calling code.
- The way the responsibility for cleaning-up after the call is shared between the
calling code and the function or procedure.
These agreements are called calling conventions.