This section describes the process that one function (caller) makes call into another function (callee).
For prototyped functions, all arguments are converted to the expected callee types before passing.
Parameter Passing
Varargs
Unprototyped Functions
Return Values
Caller/Callee Saved Registers
Function Pointers
Legacy Floating-Point Support
FpCsr
MXCSR
setjmp/longjump
The Visual C/C++ compiler provides several different conventions for calling internal and external functions. Understanding these different approaches can help you debug your program and link your code with assembly-language routines.
The topics on this subject explain the differences between the calling conventions, how arguments are passed, and how values are returned by functions. They also discuss naked function calls, an advanced feature that enables you to write your own prolog and epilog code.