参数传递的和命名约定
Microsoft 专用
,在通过时,所有参数被扩展为 32 位。 返回值还可扩大到 32 位并返回该 EAX 注册,除 8 字节结构,在 EDX 返回: EAX 注册对。 ,在隐藏的指针返回结构,较大的结构。 EAX 注册返回。 参数从右向左推入堆栈。 不是 POD 框架在寄存器不会返回。
,如果在函数中,编译器生成 prolog 和 epilog 代码保存和还原 ESI、、和 EDI EBX EBP 寄存器。
备注
当结构、联合或类从函数返回值时,该类型的所有定义需要相同,则程序可能会在运行时。
有关如何定义的信息拥有 prolog 和 epilog 代码,请参见 裸函数调用。
下面的调用约定可视化 C/C++ 编译器支持。
关键字 |
堆栈清理 |
参数传递 |
---|---|---|
调用方 |
推入堆栈的参数,按相反的顺序 (从右向左) |
|
无 |
按顺序加载在 CLR 表达式堆栈上的参数 (从左到右)。 |
|
被调用方 |
推入堆栈的参数,按相反的顺序 (从右向左) |
|
被调用方 |
存储在注册,然后被推入堆栈 |
|
被调用方 |
推入堆栈;在 ECX 存储的 这 指针 |
有关相关信息,请参见 已过时的调用约定。
结束特定