-3
的我很迷茫之間的API (應用編程接口)和ABI(應用程序二進制接口)可以解釋人我什麼是這兩個和他們的區別的概念?概念API和ABI
的我很迷茫之間的API (應用編程接口)和ABI(應用程序二進制接口)可以解釋人我什麼是這兩個和他們的區別的概念?概念API和ABI
API在源代碼級別定義模塊可以爲客戶提供的對象和方法。你如何實例化它的對象?你需要傳遞什麼論據給它的方法,它們返回什麼?一般來說,當你想知道什麼庫函數可用以及如何使用它們時,你在問一個API。
ABI是一個較低級別的概念。它定義了模塊和客戶端之間傳遞的位和字節。他們在什麼格式?他們是否被推入堆棧,通過寄存器,或存儲在其他地方?函數返回時是否需要清理堆棧,如果有,誰負責處理呢?
完全愚蠢,但啓發性的例子:
考慮一個庫函數兩個整數相乘:
long long multiply(unsigned int multiplicand, long multiplier);
它的API指定您有兩個參數(一個無符號整數和有符號長叫它整數),並返回一個帶符號的雙精度長整數。
其ABI可以指定你使用這樣的:
Protip:如果我是你,我會找到另一個數學庫。這個太可怕了! :-)
調查維基百科,並回來一個具體的問題。 –