做者 謝恩銘,公衆號「程序員聯盟」。 轉載請註明出處。 原文:www.jianshu.com/p/60caadd22…html
《C語言探索之旅》全系列git
上一課是 C語言探索之旅 | 第一部分第一課:什麼是編程? ,這一課咱們就正式進入 C語言編程的正題了。程序員
這一課咱們將回答如下問題:github
咱們須要什麼軟件來編程呢?編程
這一課你們能夠輕鬆地度過,由於沒有什麼難點(不過也有很多知識點)。咱們會花點時間來認識一些經常使用的編程軟件。小程序
應該好好享受這一課,由於下一課開始咱們就要一塊兒寫程序了,因此該喝咖啡的喝咖啡,該吃烤雞的吃烤雞,休息好了,才能上陣。vim
依你看,什麼軟件對編程來講是必要的呢?若是你認真學了上一課,那你至少能夠說出一種吧。xcode
對了,就是編譯器。這個重要的程序能夠把你的源代碼(用高級語言(好比 C語言)寫的指令)轉換成電腦能夠理解的二進制碼(只包含 0 和 1 的,例如 01100110001111011101010)。markdown
上一課咱們也提了一下,每種高級語言都有對應的編譯器(固然對於 Python 這樣的解釋性語言,就不須要編譯了),光是 C語言的編譯器就有不少。app
比較經常使用的有 GCC(GNU C Compiler。GNU 是國際著名的自由軟件基金會,GNU 是「GNU is Not Unix」(GNU 不是 Unix)的遞歸縮寫法。
老外老是那麼頑皮,起名字也喜歡整一些編程的知識,好比 Linux 就是「Linux Is Not Unix」(Linux 不是 Unix)的遞歸。要不就用不少動物的名字或圖標,特別有意思)。
除了編譯器,咱們還須要什麼工具呢?
就不賣關子了吧,下面列出編程的基本工具:
文本編輯器:Text Editor。用來寫源代碼的工具。理論上 Windows 操做系統的記事本或者 Linux 下的 Nano 編輯器均可以做爲文本編輯器來使用。可是,最好仍是用一些更高級一點的文本編輯器,好比能夠支持代碼高亮顯示,方便你在代碼間跳轉,等。我的推薦的文本編輯器是 VS Code、Vim 或 Emacs。這幾個文本編輯器真的很是強,跨平臺(Windows、Linux、macOS,等),能夠自由定製,各類快捷鍵組合,有的還能夠收發郵件,看視頻,瀏覽網頁,瀏覽 PDF,沒有作不到,只有想不到(略有誇張...),可讓你編輯代碼很是高效。Vim 和 Emacs 是老牌的文本編輯器,粉絲不少。VS Code 是微軟在 2015 年發佈的一款免費開源的現代化輕量級代碼編輯器,如今也很是火。
編譯器:Compiler。已經提過了,用來轉換(或叫「編譯」)你的源代碼成爲二進制碼。
調試器:Debugger。用來跟蹤、發現程序裏的錯誤的工具。這裏出現一個新名詞,調試(debug)。bug 是英語「臭蟲,蟲子」的意思,de 在英語裏是一個表示「分離,除掉」的前綴,因此 debug 的意思就是「除臭蟲」。通常把程序裏的錯誤或者缺陷叫作 bug,聽說是由於傳奇女程序員 Grace Hopper(格萊斯.霍普)有一次在 MARK II 計算機(就是那種早期的比較龐大的電腦)中發現了一隻飛蛾,這隻飛蛾致使了這臺電腦死機(夾在電腦的繼電器之間),霍普用鑷子把飛蛾夾出來,用透明膠布貼到筆記本上,並註明「第一個發現蟲子(bug)的實例」。今後,人們就沿用了這個有趣的稱呼,用 debug 來表示排除程序錯誤的行爲。如今霍普的筆記本,連同那隻「呆萌」的飛蛾,陳列在美國曆史博物館裏。在 Linux 下,經常使用的調試器是 GDB(GNU Debugger)。
固然,若是你有冒險精神,喜歡挑戰,也能夠不用調試器(經過一些小技巧也是能夠本身找到錯誤所在的)。可是,我想通常來講你是會須要調試器的。
因此,咱們就有兩個選擇了:
分開使用文本編輯器,編譯器和調試器這三種工具。雖然複雜一些,可是也行得通。在 Linux 環境下,很多程序員仍是喜歡用這種方式來編程。可能不是「裝」,要的就是這個 feel,倍爽兒。
使用一種軟件,這種軟件集合了這三種工具的功能。這種軟件被稱爲 IDE(是 Integrated Development Environment 的縮寫,表示「集成開發環境」)。
一開始你可能會難以抉擇,到底用哪一種呢?即便選擇了用 IDE,也會糾結到底用哪個 IDE 好呢。
其實咱們能夠確定的是:不論你選擇哪一種工具,你均可以編寫你想要的程序。只是效率,我的習慣和特定平臺要求不一樣罷了。
其實,你也能夠用 VS Code、Vim、Emacs 這樣的文本編輯器,經過安裝一些插件,使其可以編譯運行 C語言的程序。網上有很多圖文教程,請你們自行搜索。
我以爲有必要向你們展現幾個最著名的 IDE:
Clion :跨平臺的 IDE。目前我我的認爲最棒的 C語言或 C++語言的 IDE,由著名的 JetBrains 公司開發。JetBrains 的明星 IDE 還有 PyCharm(適用於 Python 語言),WebStorm(適用於 JavaScript 語言),IntelliJ IDEA(適用於 Java 和 Kotlin 語言),GoLand(適用於 Go語言),等等。JetBrains 公司還開發了 Kotlin 語言,還和 Google 公司合做發行了 Android 的最強開發 IDE:Android Studio。JetBrains 的 Clion 這款 IDE 很是強大,用戶體驗很是好。 缺點:基礎版本是收費的。不過,若是你是學生或教師,或者目的是課堂教學,或者你有不錯的開源項目,或者若是你是,能夠享受 JetBrains 的免費或減免優惠,請見 www.jetbrains.com/idea/buy/#d… 。
Eclipse:免費,開源,跨平臺的 IDE。老牌的 IDE 了,Eclipse 也是一個開源基金會,旗下有很多優秀的開源項目。若是要用 Eclipse 來開發 C語言或 C++語言的程序,須要下載安裝 Eclipse CDT 這款 IDE。 缺點:近幾年感受被 JetBrains 公司的 IDE 搶了風頭。我早年編程或開發 Android 應用的時候使用過 Eclipse,但如今我已經徹底投向 JetBrains 的懷抱(Python 編程我用 PyCharm,C/C++ 編程我用 CLion,Java/Kotlin 編程我用 IntelliJ IDEA,Android 開發我用 Android Studio,等等),由於 JetBrains 的 IDE 真的都太好用了。不過目前仍是有很多人使用 Eclipse 來進行開發的。
Code::Blocks :免費,開源,跨平臺的 IDE。Code::Blocks 的開發環境搭建起來很是快,幾乎不須要什麼配置。 缺點:近幾年 Code::Blocks 更新有點緩慢,只有 Linux 和 Windows 的版本有陸陸續續的更新。感受這款開源社區維護的 IDE 可能人手和資金有不足的趨勢。
Visual Studio :簡稱 VS。VS 功能很完備,並且調試器很強大。 缺點:只能運行在 Windows 操做系統上,安裝體積大。基礎版本是收費的。有一個 Visual Studio Community 的社區版本是免費的。
Xcode :做爲蘋果的編程當家 IDE,不得不說 Xcode 作得至關不錯。能夠用來開發基本的小程序,也能夠編寫 iPhone、iPad 和 macOS 的 app(模擬器速度超快),和智能手錶應用,還能夠和其餘如 Unity 3D 引擎配合來編寫遊戲。 缺點:只能運行在蘋果 macOS 操做系統上,安裝體積大。
對於各個平臺的學習 C語言的用戶,我我的的一些建議是:
Windows 用戶:能夠安裝 Code::Blocks,或者 Visual Studio,或者 Eclipse CDT,等等。
Linux 用戶:能夠安裝 Code::Blocks,或者 Eclipse CDT,等等。固然了,若是你是 C語言的初學者,Linux 下其實我比較推薦用文本編輯器來寫 C語言的源代碼,而後用 GCC 來編譯,用 GDB 來調試 C 語言的程序。要入門並提升 Linux,能夠看我在慕課網的實戰課程《Linux核心技能與應用》,或者專欄《Linux命令行與Shell腳本編程大全》。
macOS 用戶:能夠安裝 Xcode,或者 Eclipse CDT,或者 Visual Studio for Mac,等等。
學習這門 C語言的課程,你們能夠隨意選用本身最喜歡和使用最順手的 IDE,網上也有各類 IDE 的下載安裝的圖文教程,我就不一一演示了。我但願你們可以下載安裝本身最喜歡和用起來最順手的 IDE,經過 IDE 官網的教程或者網上的圖文教程來安裝配置好 IDE,並學會如何建立一個 C語言的項目,並運行。 固然,我前面提過,你也能夠用 VS Code、Vim、Emacs 這樣的文本編輯器,經過安裝一些插件,使其可以編譯運行 C語言的程序。 本課程中我會提供 C語言的代碼。IDE 的選擇我會使用我的喜歡的 IDE 來作演示。
一個程序要從開始編寫到可以運行,通常來講須要三種工具:文本編輯器,編譯器,調試器(固然對於 Python 這樣的解釋性語言,就不須要編譯了)。
咱們能夠分開使用文本編輯器,編譯器,調試器這三種工具來完成任務。可是比較方便的是使用IDE(集成開發環境,混合了這三者)來開發。
IDE 只是工具。你們可使用本身熟悉和喜歡的 IDE 來進行本課程的學習。
今天的課就到這裏,一塊兒加油吧。
今天的課就到這裏,一塊兒加油吧!
下一課一塊兒來寫咱們的第一個 C語言的程序咯。
我是 謝恩銘,公衆號「程序員聯盟」運營者,慕課網精英講師 Oscar 老師,終生學習者。 熱愛生活,喜歡游泳,略懂烹飪。 人生格言:「向着標杆直跑」