作者 主題: API與Library的差異  (閱讀 7390 次)

0 會員 與 1 訪客 正在閱讀本文。

阿民

  • 懷疑的國中生
  • **
  • 文章數: 65
    • 檢視個人資料
API與Library的差異
« 於: 2007-04-04 03:05 »
請問在此的高手們,API與Library的差異是在哪裡,定義嗎?還是.......我真的搞不懂這兩者的差異哩,謝謝!!..........我不是來亂的。

darkranger

  • 榮譽學長
  • 俺是博士!
  • *****
  • 文章數: 1370
    • 檢視個人資料
    • http://darkranger.no-ip.org
API與Library的差異
« 回覆 #1 於: 2007-04-04 18:11 »
就我的理解是:
API是方便呼叫軟體Library的函式
舉個例子:
假設要一個程式中使用ImageMagick的功能
可以直接copyImageMagick的原始碼來用
也可以在程式中使用ImageMagick提供的API
來方便呼叫這些功能

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
API與Library的差異
« 回覆 #2 於: 2007-04-05 01:06 »
我對API與library的理解是這樣的

您用很大的力氣去開發一組library後要設法再去開發一組API出來讓其他的開發者可以方便的使用您的library

而是否可以用API來開發library??很像不能這樣說,因為API就是要將複雜的library簡化的

開發library(函數庫)比較著重在一些演算法及硬體控制(當然也可以高階一點的應用)

而API比較著重在最終的開發(也就是開發完後就可以給一般使用者使用的程式)

所以用API開發可以用比較少的力氣做出比較大的成果

而開發library要用很大的力氣才能看到一點點成果出來

..........................................................................
把老梗拿出來講一下好了
下面是一個我貼在本版的程式
http://phorum.study-area.org/viewtopic.php?p=220960#220960

其中的一整組函數是這樣的(宣告在.H檔中的函數原型)
http://phorum.study-area.org/viewtopic.php?p=220962#220962

其中有一個函數char *lee_hbpfs(char *a,int op,char *b);
他應可稱為API應為該函數並無涉及任何演算法,只是叫用其他函數達到該函數庫所有的所有功能
http://phorum.study-area.org/viewtopic.php?p=220964#220964

而其他函數大多有涉及演算法則,如果不是本人或對此有研究的人來說,當沒有這個lee_hbpfs()時
相信整組函數可被利用的價值將會有所折扣,所以當我寫了更多的函數出來時,可將
lee_hbpfs()抽離出來成為另一組"API函數庫"
========================================
這樣講很像有點亂了....希望有人能再補充一下^^!
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

HT

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
API與Library的差異
« 回覆 #3 於: 2007-04-11 09:10 »
這時候一定要呼叫一下維基大神的啦
http://en.wikipedia.org/wiki/Api
http://en.wikipedia.org/wiki/Library_%28computer_science%29
英文的,K一下吧
那中文wikipedia就省了吧,解釋上有點不一樣
就像英文原本字面上的意思
API就是一套interface
library是一堆subprogram
延伸一下問題
library跟framework倒是比較難分
記得framework在英文字義上也有特定的表達
解釋我也忘了,印象裡在C++ network programming裡有一個不錯的解釋