gpt4 book ai didi

c - C ABI 是否要求使用堆栈将参数传递给函数?

转载 作者:行者123 更新时间:2023-11-30 15:10:06 25 4
gpt4 key购买 nike

C ABI 是否要求参数始终仅使用堆栈传递给函数?

最佳答案

ABI 或应用程序二进制接口(interface)涵盖了二进制代码片段之间契约的各种细节。

  • (广泛的定义) - 它定义了调用函数的机制,如何在调用者和被调用者之间传递参数,如何向调用者提供返回值,如何实现库以及如何将程序加载到内存。

  • (具体来说)调用约定,它控制如何传递函数的参数和检索返回值;例如,是否所有参数都在堆栈上传递,或者部分参数在寄存器中传递,哪些寄存器用于哪些函数参数,以及堆栈上传递的第一个函数参数是先压入还是最后压入堆栈。

  • 一个实例 - 引用 ARM ABI Procedure Call Standard for ARM Architecture 提到的调用约定- 您可以引用堆栈部分(第 16 页末尾) - 堆栈是一个连续的内存区域,可用于存储局部变量和传递当可用参数寄存器不足

  • 时向子例程添加附加参数

关于c - C ABI 是否要求使用堆栈将参数传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36394831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com