[Powered by Google Translate] NATE哈迪森:在編程中,圖書館是一個集 相關預先寫好的代碼。 圖書館是如何,我們作為程序員,有著共同的和 有用的代碼,與不同的節目中,我們相互 寫,甚至運行在不同的進程 同時在我​​們的電腦上。 讓我們探討一下。 其中比較常見的功能,你可能 一直使用的是printf函數。 現在,printf是不是有些神奇的功能, 硬編碼到計算機 - 相反,它是C標準庫的一部分,這是 附帶的功能的集合 C編程語言。 由於printf是內置於計算機中,這意味著, 有一些程序員究竟是誰走了進去,並寫下了 printf函數和捆綁它與其餘的標準 庫,從而使未來的程序員不會有 重複的努力。 我們相信感激,這樣的話,因為檢查 出它實際上需要多少代碼來實現輸出。 C標準庫,其中printf是一個部分, 最重要的工具之一,你 在解決CS50。 除了輸入輸出庫其中 printf的生活,還有一堆其他圖書館, 你可能會使用的CS50的過程。 例如,字符串庫的功能, 比較C字符串,其長度,然後將它們連接起來。 和數學庫為您提供幫助 常量,如pi和e。 現在,相比其他編程標準庫 語言,C標準庫是非常小的, 但他們仍然有一個重要的東西。 這並不是說,標準庫是 C庫,也有許多在那裡的 供您使用,包括CS50圖書館的世界, 製圖庫加密和解密 函數,庫函數進行編碼和 回放視頻,等等。 這給我們帶來了一個重要的一邊。 工程的基本技能之一是知道的 在你的工具箱中的工具,使您可以使用 他們和避免重新發明輪子,除非 你必須這樣做。 作為程序員,庫是一個最重要的 我們的工具。 當你發現自己面臨著一個任務,這似乎單調乏味或 司空見慣,就像找到一個C字符串的長度, 應該問自己,如果可能的情況下, 已經有人做了同樣的事情之前。 有機會,你可以找到一些 幫助在圖書館。 因此,在技術方面,圖書館是一個二進制文件, 已產生的連接在一起的集合 使用工具的目標文件調用,你 猜對了,連接器。 目標文件是o文件,你當你 編譯C源代碼。 當程序員編寫的庫,他們通常 他們的C代碼分離成兩種類型的文件: 頭文件和實現文件。 按照慣例,一個頭文件。h文件擴展名, 它包含的代碼,聲明該庫的 資源供您使用。 這些資源包括函數,變量,結構, 類型定義,以及等等,並在一起,它們是 通常稱為作為接口。 事實上,如果你曾經想知道什麼是在圖書館, 頭文件的地方去尋找。 例如,你可以拉起來USR /包括/ stdio.h和檢查 一切你曾經想知道 標準IO庫。 有很多東西在這裡,它可以採取一些 涉水通過。 然而,隨著谷歌和聯機幫助頁,這是 地方去,如果你想知道如何使用標準I / O 庫函數的工作。 因此,這裡要注意的一個關鍵的事情,不過,就是這個頭文件 通常不包括函數定義 - 也就是說,實際的功能實現。 這是一個重要的計算機科學的圖示 原則叫做信息隱藏,也被稱為在 倍封裝。 由於用戶或客戶端的一個庫,則不需要 了解庫中的內部 為了使用它。 還記得看到輸出只是有點? 如果你實際的代碼之前見過嗎? 嗯,我認為即使你沒有,你可能 用的printf噸的次數。 你必須知道的是函數的聲明存在 在stdio.h頭文件。 總之,良好的信息隱藏的利益是你 你寫的程序是絕緣的任何變化 的庫函數的實現代碼。 如果執行的printf的變化,你不必 去改變所有你的程序中使用printf。 那麼,實施去了? 好了,再次,按照慣例,實施“在 。c文件擴展名的文件。 通常情況下,頭文件和實現文件齊頭並進 在手,所以,如果你已經聲明了一堆新的字符串 在mystring.h的功能,然後你可以定義所有的 這些功能在mystring。 那麼接下來的頭文件和實現文件,然後 編譯,創建目標文件,然後鏈接 在一起,產生的二進制庫文件。 庫編寫者將附帶的二進制文件,以及 程序員誰想要使用的頭文件 該庫。 在這一點上,C語言實現文件 需要,除了從頭開始,所以重新編譯該庫 他們經常離開了。 要使用C庫,你必須做兩件事情。 首先,你必須包括庫的頭文件和 你想使用源代碼文件 庫中的代碼。 這告訴編譯器,所有的聲明 函數,變量,結構,等等,目前在 頭文件,以便編譯器之一,確保 您正在使用圖書館的資源以適當的方式, 2,生成相應的彙編代碼。 根據庫的頭文件 位於的#include語法各不相同。 如果頭文件位於系統的 默認情況下包括目錄 - 通常情況下,usr/include-- 然後尖括號語法時,如在#include 。 然而,如果頭文件都位於相同的 目錄作為自己的代碼,雙引號的語法是 使用#“包括”mylib.h。 你所要做的第二件事是鏈接的二進制 庫文件時,編譯你的代碼。 這是一個超級的重要步驟。 還記得我們前面的討論中,關於如何頭 文件不包含實現代碼嗎? 如果你忘了這一步,你會得到錯誤信息 在你的代碼中未定義的符號引用。 要解決此問題,請使用-l標誌,後面緊跟 沒有空間的庫名稱。 在許多系統,包括家電,C標準 庫將自動為您聯繫。 然而,有時被捆綁的數學庫分別 可能需要鏈接時使用-lm。 在設備上,我們為你照顧,我們也 鏈接CS50圖書館,lcs50的。 當你運行時,在設備上,你可以看到這一切。 現在你應該有你需要使用的知識 C.庫中盡情探索。 我的名字是Nate哈迪森,這是CS50。