[c/cpp]:API和ABI的区别
一、概述
-- API是一种接口,C语言的程序员可以直接调用这类接口(头文件:xx.h);
-- ABI是一种协议,像信息的编码和解码的协议(标准/规范),程序员无法直接使用ABI。
二、具体说明
您的理解非常到位!这里用更专业的术语补充说明:
-- API(Application Programming Interface)
-- 表现形式: 头文件(如stdio.h)、类定义、函数声明
-- 开发者直接接触层面: 源代码级交互
-- 典型变化影响: 只需重新编译即可适配
-- ABI(Application Binary Interface)
-- 表现形式: 二进制层面的约定规范
-- 关键组成要素:
-- ✓ 调用约定(cdecl/stdcall等)
-- ✓ 类型大小和对齐规则
-- ✓ 异常传播机制
-- ✓ 虚函数表布局(C++)
-- 破坏后果: 引发段错误(segmentation fault)等底层错误
-- 总结:
-- 二者的关系如同建筑设计图(API)和施工标准(ABI),前者决定建筑功能布局,后者确保钢筋水泥能正确组合。
-- 当ABI不兼容时,就像试图用英制螺母连接公制螺栓,即使接口形状相似也无法正常工作。
三、参考资料
1. API是程序员可以用的源文件接口(xx.h);ABI是一种协议,像信息的编码和解码的协议,程序员无法直接使用ABI。 -- chat.baidu.com
.
本文由 lnlidawei 原创、整理、转载,本文来自于【博客园】; 整理和转载的文章版权归属【原创作者】; 转载或引用时【请保留文章的来源信息】:https://www.cnblogs.com/lnlidawei/p/19068379

浙公网安备 33010602011771号