gpt4 book ai didi

abi - API 和 ABI 之间的区别

转载 作者:行者123 更新时间:2023-12-03 04:14:22 25 4
gpt4 key购买 nike

我是 Linux 系统编程新手,在阅读时遇到了 API 和 ABILinux系统编程

API定义:

An API defines the interfaces by whichone piece of software communicateswith another at the source level.

ABI 的定义:

Whereas an API defines a sourceinterface, an ABI defines thelow-level binary interface between twoor more pieces of software on aparticular architecture. It defineshow an application interacts withitself, how an application interactswith the kernel, and how anapplication interacts with libraries.

程序如何在源级别进行通信?什么是源级别?它与源代码有什么关系吗?或者库的源代码包含在主程序中?

我知道的唯一区别是 API 主要由程序员使用,而 ABI 主要由编译器使用。

最佳答案

API:应用程序接口(interface)

这是您从应用程序/库公开的一组公共(public)类型/变量/函数。

在 C/C++ 中,这是您在随应用程序附带的头文件中公开的内容。

ABI:应用程序二进制接口(interface)

这就是编译器构建应用程序的方式。
它定义了一些东西(但不限于):

  • 参数如何传递给函数(寄存器/堆栈)。
  • 谁从堆栈中清除参数(调用者/被调用者)。
  • 返回值放置的地方进行返回。
  • 异常如何传播。

关于abi - API 和 ABI 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3784389/

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