呼び出し規約
比較
規約 | 引数の順序 | スタックの清掃 | 戻り値 | 用途 |
---|---|---|---|---|
cdecl | 右から左の順でスタックに積まれる | caller | EAX レジスタ | Visual C++ の既定 |
stdcall | 右から左でスタックに積まれる | callee | EAX レジスタ | 多くの Windows API で利用 |
fastcall | 最初の 2 つの引数は ECX および EDX レジスタ、残りは右から左の順でスタックに積まれる | callee | EAX レジスタ | 高速な関数呼び出しが必要な場合 |
thiscall | メンバー関数の this ポインターは ECX レジスタ、他の引数は右から左の純にスタックに積まれる | callee | EAX レジスタ | C++ のメンバー関数呼び出しで使用 |
x64 | 最初の 4 つの引数は RCX, RDX, R8, R9 レジスタ、残りは右から左の順でスタックに積まれる | caller | RAX レジスタ | x64 |