Hasty Briefsbeta

双语

ABI vs. API (2004)

7 days ago
  • #Software Compatibility
  • #API
  • #ABI
  • API 是源代码级别的接口,规定了函数、参数及其使用方法,例如 C 语言中的 fopen 函数及其头文件和函数原型。
  • ABI 是二进制级别的接口,详细说明了编译后的代码如何交互,涵盖了数据布局,如字节顺序、指针大小和堆栈参数传递。
  • 兼容性差异:添加元素(例如,向结构体添加元素)可能保持兼容性;ABI 破坏需要修改共享库版本号(soname),而 API 破坏则要求更新源代码,通常避免但可能发生在主要库的版本中。