日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

編程核心知識—API與ABI的區別

 

API與ABI不時會出現在軟件開發的文檔中,他們看上去相似卻有很大區別,屬于編程核心知識。鑒于,在維基百科上的定義比較形式化,不易理解。這里先從通俗易懂的角度講解區別,然后再看維基百科的定義。

一句話區別

  • API(Application Programming Interface,應用程序編程接口)是對源代碼的約束。
  • ABI(Application Binary Interface,應用程序二進制接口)是對目標代碼的約束。

更詳細說明

API

通常,我們使用特定的編程語言來描述API,盡管某些軟件系統(“框架”或“庫”)提供了多種語言的API(例如,許多機器學習框架同時具有C++和Python API)。API不僅包括功能、過程和數據結構的描述,還包括其使用約定(用于正確的資源管理 、回調機制和性能特征等)。扎實的API知識對于在特定框架下高效開發應用程序必不可少。大多數應用程序會使用多個API或框架:包括“開箱即用”編程語言提供的API、操作系統提供的API和第三方API等。大型應用程序還將傾向于包含”內部API“,這是專門為該應用程序開發的庫的API(作為一種可以降低應用程序整體復雜性的機制)。

ABI

ABI包含很多方面的東西:

  • 如何編碼函數名稱。
  • 如何將參數傳遞給函數,以及如何獲取返回值。
  • 如何布局數據結構:大小、對齊方式和相對偏移量等。
  • 如何拋出和處理異常。
  • 等等。

盡管ABI中的A是應用程序的縮寫,但通常應用程序的程序員對ABI的關注并不多。相反,它們通常處理以下兩種情況:

  • 以源代碼分發的框架:該框架是使用與應用程序相同的工具集(編譯器、鏈接器等)構建的,并且該工具集可確保所有”二進制位“都連接在一起。
  • 以二進制分發的框架:該框架是為特定工具集預先構建的,應用程序開發人員只需確保其用的工具集與該框架兼容即可。
編程核心知識—API與ABI的區別

 

維基百科定義

API

應用程序編程接口(API)是計算機程序不同部分之間的接口或通信協議,旨在簡化軟件的實現和維護。

API可以用于基于Web的系統、操作系統、數據庫系統、計算機硬件或軟件庫。

API規范可以采用多種形式,但通常包括例程、數據結構、對象類、變量或遠程調用的規范。 POSIX、windows API和ASPI是不同形式的API的示例。通常會提供API文檔,以方便使用和實施。

最近,該術語通常用于指代客戶端和服務器之間的特定類型的接口,該接口被描述為兩者之間的“合同”。因此,如果客戶端以特定格式發出請求,將始終以特定的格式獲得響應或啟動已定義的操作。這是API的一種特殊形式,有時也定義為WEB API。

ABI

在計算機軟件中,應用程序二進制接口(ABI)是兩個二進制程序模塊之間的接口。通常,這些模塊之一是庫或操作系統工具,另一個是用戶正在運行的程序。

ABI定義了如何在機器代碼中訪問數據結構或計算例程,這是一種低級的,與硬件相關的格式。相比之下,API在源代碼中定義了這種訪問,這是一種相對高級的、獨立于硬件的、通常是人類可讀的格式。 ABI的一個常見方面是調用約定,它確定如何將數據作為計算例程的輸入提供或從計算例程的輸出讀取。示例是x86調用約定。

堅持使用ABI(可能會或可能不會正式標準化)通常是編譯器、操作系統或庫作者的工作;但是,當使用多種編程語言編寫程序時,應用程序程序員可能必須直接處理ABI,這可以通過使用外部函數調用接口(FFI)來實現。

 

參考:https://www.quora.com/What-is-the-difference-between-API-and-ABI

分享到:
標簽:API
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定