首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >API与ABI的区别

API与ABI的区别
EN

Stack Overflow用户
提问于 2018-03-27 00:52:29
回答 2查看 0关注 0票数 0

我是linux系统编程新手,在阅读时遇到了api和abi。

空气污染指数的定义:

API定义了一个软件在源级与另一个软件通信的接口。

ABI的定义:

API定义源接口,ABI则定义特定体系结构上两个或多个软件之间的低级二进制接口。它定义了应用程序如何与自身交互,应用程序如何与内核交互,以及应用程序如何与库交互。

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

我所知道的唯一不同之处是API主要由程序员使用,ABI主要由编译器使用。

EN

Stack Overflow用户

发布于 2018-03-27 09:52:36

API:应用程序接口

这是从应用程序/库公开的公共类型/变量/函数集。

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

应用程序二进制接口

编译器就是这样构建应用程序的。

它定义了事物(但不限于):

  • 如何将参数传递给函数(寄存器/堆栈)。
  • 谁从堆栈中清除参数(调用方/被调用方)。
  • 其中返回值放置为返回。
  • 异常是如何传播的。
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档