API是什么,Linux系統中系統呼叫可以理解是作業系統為用戶提供的一系列操作的介面(API),
以C語言為例,我們使用fopen()函式可以打開一個檔案,感覺非常簡單,檔案保存在硬碟上,要經過復雜的處理才能顯示,這些細節對我們來說是透明的,由作業系統完成,也就是說,我們呼叫fopen()函式來通知作業系統,讓作業系統打開一個檔案,
那么,我們如何告訴作業系統打開檔案呢?
看似簡單的操作到底層都非常復雜,打開檔案首先要掃描硬碟,找到檔案的位置,然后從檔案中讀取一部分資料,將資料放進I/O緩沖區,放進記憶體;這些資料都是0、1序列,還要對照ASCII表或Unicode表”翻譯“成字符,再在顯示幕上顯示出來,
怎么辦呢?作業系統想了一個很好的辦法,它預先把這些復雜的操作寫在一個函式里面,編譯成一個組件(一般是元件),隨作業系統一起發布,并配上說明檔案,程式員只需要簡單地呼叫這些函式就可以完成復雜的作業,讓編程變得簡單有趣,這些封裝好的函式,就叫做API(Application Programming Interface),即應用程式編程介面,
說得更加通俗易懂一些,別人寫好的代碼,或者編譯好的程式,提供給你使用,就叫做API,你使用了別人代碼(或者程式)中的某個函式、類、物件,就叫做使用了某個API,
作業系統 API,

作業系統已經為我們實作了很多功能,它們都被封裝成了一個一個的函式,有成百上千個之多,這些函式就叫做 API,程式員要想使用某個功能,只需要呼叫相應的函式,Windows、Linux、Mac OS、Unix 這些常見的作業系統大部分功能都使用C語言開發,它們的 API 也以C語言的形式呈現,作業系統 API 數目眾多,官方必須提供詳細的說明檔案(Windows API 的說明檔案叫 MSDN),程式員在使用 API 時,需要頻繁地查閱這些檔案,

Windows API控制元件與訊息函式 ,如:
1.AdjustWindowRect 給定一種視窗樣式,計算獲得目標客戶區矩形所需的視窗大小,
2.AnyPopup 判斷螢屏上是否存在任何彈出式視窗,
3.ArrangeIconicWindows 排列一個父視窗的最小化子視窗,
編程語言 API,

各種編程語言自帶的標準庫其實也是API,這些API由編程語言的開發者們撰寫,安全、高效、健壯,為我們實作了常見的功能,讓我們不用再重復造輪子,
C語言 API 以函式的形式呈現,例如 printf()、scanf()、fopen() 等,
Java API 主要以類的形式呈現,例如 String、Thread、Date 等,
C++ 是在C語言的基礎上進行的擴展,所以 C++ API 既包含函式也包含類,
第三方庫(框架)
libxml2——xml的c語言版庫,2個專案使用過,win和Linux下都很犀利~~比較快捷
CURL—— 這個用的主要是使用了他的封裝的http和https的請求,比較犀利,其中包含了openssl的內容
iconv——功能強大的編碼格式轉化庫,UTF8,Unicode等互相轉化很方便
openssl——C的開源密庫,可以進行證書加密和https的訪問的模擬提交可以和CURL配合使用
cocos2d——2D游戲引擎,相比較傳統的UI自己控制的重畫
OpenCV——開源影像庫
還有很多第三方(非官方)的組織機構、公司、個人提供的代碼,也是一種 API,這些代碼有的免費,有的收費;有的開源,有的閉源,這些代碼大都針對某個特定的應用領域撰寫,有時候被稱為框架或者庫,例如基于C語言的圖形界面庫GTK,基于C++的網路庫ACE,基于Java的大資料處理平臺Hadoop,基于Python的Web開發框架Django,基于JavaScript的前端開發框架React,
全球最大的代碼托管網站GitHub也貢獻了很多優秀的代碼,它們大都開源免費,作為開源代碼庫以及版本控制系統,Github擁有超過900萬開發者用戶,隨著越來越多的應用程式轉移到了云上,Github已經成為了管理軟體開發以及發現已有代碼的首選方法,,這些第三方的API數目眾多,種類豐富,我們應該大膽去使用,盡量避免重復造輪子,

常見問題:
假設你想在你的表單模塊中宣告一個函式,粘貼然后運行,VB會告訴你:編譯錯誤...Declare 陳述句不允許作為類或物件模塊中的Public(公共的) 成員,..看起來很糟糕,其實你需要做的只是在宣告前面添加一個Private(私有的),不要忘了,可是這將使該函式只在該表單模塊可用,. 在有些情況下,你會得到"不明確的名稱"這樣的提示,這是因為函式、常量或其他的什么東西共用了一個名稱,由于絕大多數的函式都進行了別名化,亦即意味著你可以通過Alias子句使用其它的而不是他們原有的名稱,你只需簡單地改變一下函式名稱而它仍然可以正常運行,
原文出處:http://baijiahao.baidu.com/s?id=1586026960877760125&wfr=spider&for=pc
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/59709.html
標籤:Linux
上一篇:Docker簡介與安裝
下一篇:檔案壓縮和打包
