lnlidawei

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

[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

 

  .

 

posted on 2025-09-01 15:53  lnlidawei  阅读(12)  评论(0)    收藏  举报