[問題] api是什麼?

看板C_and_CPP作者 (ㄎㄎ)時間8年前發表 (2017/06/02 07:52), 8年前編輯推噓3(4125)
留言30則, 14人參與, 最新討論串1/6 (看更多)
最近自學想要寫一些比較好玩的東西,而看上了winAPI,雖然知道api是應用程式介面,但實際使用上和函式庫沒什麼區別,所以他是函式庫? 但仔細想想,winAPI是程式要使用核心功能的介面,用函式庫好像沒辦法實現(?),所以是用已經編譯封裝好的程式,算是dll? 還是兩者混合在一起用? 如果是函式庫,那為什麼像opneCL和QT不叫API而叫函式庫? 看了很多解釋還是搞不太懂API的概念 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.139.188.142 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1496389972.A.4B9.html

06/02 15:57, , 1F
個人理解: API 是指那個使用界面 library 是後面的實作
06/02 15:57, 1F

06/02 15:58, , 2F
也就是說函式庫實作了功能 然後他可以提供 API 給你呼叫使用
06/02 15:58, 2F

06/02 16:31, , 3F
API就是開放出來的使用界面,WinAPI是Windows OS的界面
06/02 16:31, 3F

06/02 16:31, , 4F
QT/OpenCL也有各自對應不同語言的API
06/02 16:31, 4F

06/02 20:44, , 5F
API 是為了讓應用程式進行特定操作所給定的規範
06/02 20:44, 5F

06/02 23:09, , 6F
樓上大大們講的都可以參考,還有一些會搞混的如sdk..
06/02 23:09, 6F
還是看不太懂....那如果我使用一個函式a(),他的宣告是void a(void);,如果這個函式 在函式庫和API裡面都有一樣的效果,那他們的區別是什麼?實現的方式? ※ 編輯: wei115 (125.230.101.22), 06/03/2017 00:04:31

06/03 00:33, , 7F
API 就是說你要用功能 A 就去 call a(arg_a,arg_b,arg_c)
06/03 00:33, 7F

06/03 00:34, , 8F
函式庫就是提供這個 a() 的實作內容 (就這功能如何運作)
06/03 00:34, 8F

06/03 00:53, , 9F
哪他是怎樣call的呢?一般寫程式的時候可以用API來用但在寫
06/03 00:53, 9F

06/03 00:54, , 10F
API的時候要怎麼去用核心的功能呢?
06/03 00:54, 10F

06/03 00:56, , 11F
這麼說吧: API 是抽象概念, 描述函式庫要怎麼使用的概念
06/03 00:56, 11F

06/03 00:56, , 12F
它並不只是單指函數要傳什麼參數進去, 而是包含整個函式庫
06/03 00:56, 12F

06/03 00:57, , 13F
當中的設計邏輯和使用方法
06/03 00:57, 13F

06/03 00:57, , 14F
所以例如 Windows API 就要你要怎麼跟 Windows 系統溝通
06/03 00:57, 14F

06/03 00:58, , 15F
的邏輯、介面、使用方法等等的整體設計
06/03 00:58, 15F

06/03 04:07, , 16F
你可以把API當成包在外面的一層殼
06/03 04:07, 16F

06/03 09:06, , 17F
可以先看看維基百科 還蠻清楚的
06/03 09:06, 17F

06/03 10:30, , 18F
API 的重點在 I,即是界面,程式之間溝通的界面
06/03 10:30, 18F

06/03 10:33, , 19F
就算是網頁哪種JSON傳來傳去的東西,也被稱為API
06/03 10:33, 19F

06/03 13:57, , 20F
因為講API的時候通常還漏了一個以上的單字
06/03 13:57, 20F

06/03 14:57, , 21F
不需要這麼深究吧 XD 就是一個很概念性的名詞而已
06/03 14:57, 21F

06/09 12:36, , 22F
就是介面
06/09 12:36, 22F

06/11 13:18, , 23F
其實就是相對於 user interface 的programming interface
06/11 13:18, 23F

06/11 13:18, , 24F
一個是讓你拿鍵盤滑鼠點來點去跟程式互動,一個是讓你寫
06/11 13:18, 24F

06/11 13:19, , 25F
程式去呼叫它開放出來的 library 跟程式互動。
06/11 13:19, 25F

06/11 13:20, , 26F
打太快,是 function 不是 library XD
06/11 13:20, 26F

06/11 13:21, , 27F
至於它跟 library 的差別,其實沒什麼人去特別定義。
06/11 13:21, 27F

06/11 13:22, , 28F
一般會認為有互動對象,對象是個應用程式之類的,或者是
06/11 13:22, 28F

06/11 13:22, , 29F
作業系統、虛擬機器等等的東西,這種比較有 API 的感覺。
06/11 13:22, 29F

06/17 23:20, , 30F
我不知道API是啥小
06/17 23:20, 30F
文章代碼(AID): #1PCHbKIv (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
問題
2
14
完整討論串 (本文為第 1 之 6 篇):
問題
3
30
問題
2
14
問題
8
31
問題
16
30
文章代碼(AID): #1PCHbKIv (C_and_CPP)