[zz]MFC - __fastcall
Microsoft Specific
The __fastcall calling convention specifies that arguments to functions are to be passed in registers, when possible. The following list shows the implementation of this calling convention.
Element | Implementation |
---|---|
Argument-passing order | The first two DWORD or smaller arguments are passed in ECX and EDX registers; all other arguments are passed right to left. |
Stack-maintenance responsibility | Called function pops the arguments from the stack. |
Name-decoration convention | At sign (@) is prefixed to names; an at sign followed by the number of bytes (in decimal) in the parameter list is suffixed to names. |
Case-translation convention | No case translation performed. |
Note Future compiler versions may use different registers to store parameters.
Using the /Gr compiler option causes each function in the module to compile as fastcall unless the function is declared with a conflicting attribute, or the name of the function is main
.
Example
In the following example, the function named DeleteAggrWrapper
is passed arguments in registers:








posted on 2009-11-12 21:57 小默 閱讀(272) 評論(0) 編輯 收藏 引用 所屬分類: Language