Calling convention
In computer science, a calling convention is an implementation-level (low-level) scheme for how subroutines receive parameters from their caller and how they return a result. Differences in various implementations include where parameters, return values, return addresses and scope links are placed, and how the tasks of preparing for a function call and restoring the environment afterward are divided between the caller and the callee.
Calling conventions may be related to a particular programming language's evaluation strategy but most often are not considered part of it (or vice versa), as the evaluation strategy is usually defined on a higher abstraction level and seen as a part of the language rather than as a low-level implementation detail of a particular language's compiler.
Overview
Calling conventions may differ in:
Where parameters, return values and return addresses are placed (in registers, on the call stack, a mix of both, or in other memory structures)
The order in which actual arguments for formal parameters are passed (or the parts of a large or complex argument)