ABI和API的区别

ABI和API的区别

ABI(Application Binary Interface)

  • ABI是一种定义了二进制接口规范的概念,用于描述不同模块之间如何进行二进制交互。它定义了函数调用约定、参数传递方式、寄存器使用、内存布局等底层细节。ABI的目标是确保不同编译单元(如不同源文件、不同库)之间能够正确地进行链接和执行,以及确保二进制代码的兼容性。
  • 通常,ABI是针对特定的硬件和操作系统平台而定义的,不同的平台可能有不同的ABI。例如,x86架构上的Linux操作系统和ARM架构上的Android操作系统具有不同的ABI。

对于C语言,ABI 通常包括函数的返回类型和参数列表、结构体的布局,以及枚举类型的含义、顺序和范围。

可以看下Linux的ABI手册:https://www.kernel.org/doc/html/v6.0/admin-guide/abi.html

API(Application Programming Interface)

  • API是一组定义了软件组件之间如何交互的接口规范。它定义了函数、类、方法、数据结构等的语法和语义。API提供了一种标准化的方式,让不同的软件组件(如库、框架、服务等)之间可以相互通信和协作。
  • API属于更高层次的抽象,面向开发者,提供了一种编程接口,使得开发者可以利用已经实现的功能来构建自己的应用程序。API通常以文档形式提供,包括函数原型、参数说明、返回值等。

在这里插入图片描述

总结:理解ABI可以帮助我们更好地处理跨平台的二进制兼容性问题,而理解API则有助于我们使用和集成各种软件组件来开发应用程序。

  • ABI关注的是二进制级别的接口规范,确保不同编译单元之间的二进制兼容性,是应用程序与操作系统级的交互范畴
  • API关注的是更高层次的接口规范,用于不同软件组件之间的交互和开发者使用,是应用程序与库和其他应用程序的交互范畴
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值