
作者 謝恩銘,公眾號「程序員聯(lián)盟」(微信號:coderhub)。
轉(zhuǎn)載請注明出處。
原文:http://www.itdecent.cn/p/60caadd22c88
《C語言探索之旅》全系列
內(nèi)容簡介
- 前言
- 編程的必要工具
- 選擇你的 IDE
- 總結(jié)
- 第一部分第三課預告
1. 前言
上一課是 C語言探索之旅 | 第一部分第一課:什么是編程? ,這一課我們就正式進入 C語言編程的正題了。
這一課我們將回答以下問題:
我們需要什么軟件來編程呢?
這一課大家可以輕松地度過,因為沒有什么難點(不過也有不少知識點)。我們會花點時間來認識一些常用的編程軟件。
應該好好享受這一課,因為下一課開始我們就要一起寫程序了,所以該喝咖啡的喝咖啡,該吃烤雞的吃烤雞,休息好了,才能上陣。
2. 編程的必要工具
依你看,什么軟件對編程來說是必要的呢?如果你認真學了上一課,那你至少可以說出一種吧。
對了,就是編譯器。這個重要的程序可以把你的源代碼(用高級語言(比如 C語言)寫的指令)轉(zhuǎn)換成電腦可以理解的二進制碼(只包含 0 和 1 的,例如 01100110001111011101010)。
上一課我們也提了一下,每種高級語言都有對應的編譯器(當然對于 Python 這樣的解釋性語言,就不需要編譯了),光是 C語言的編譯器就有很多。
比較常用的有 GCC(GNU C Compiler。GNU 是國際著名的自由軟件基金會,GNU 是“GNU is Not Unix”(GNU 不是 Unix)的遞歸縮寫法。
老外總是那么頑皮,起名字也喜歡整一些編程的知識,比如 Linux 就是“Linux Is Not Unix”(Linux 不是 Unix)的遞歸。要不就用很多動物的名字或圖標,特別有意思)。
除了編譯器,我們還需要什么工具呢?
就不賣關子了吧,下面列出編程的基本工具:
文本編輯器:Test Editor。用來寫源代碼的工具。理論上 Windows 操作系統(tǒng)的記事本也可以作為文本編輯器來使用。但是,最好還是用一些更高級點的文本編輯器,比如可以支持代碼高亮顯示,方便你在代碼間跳轉(zhuǎn)等。個人非常推薦的文本編輯器是 Vim、Emacs、VS Code、Atom、Sublime,等等。
編譯器:Compiler。已經(jīng)提過了,用來轉(zhuǎn)換(或叫“編譯”)你的源代碼成為二進制碼。
調(diào)試器:Debugger。用來跟蹤、發(fā)現(xiàn)程序里的錯誤的工具。這里出現(xiàn)一個新名詞,調(diào)試(debug)。bug 是英語“臭蟲,蟲子”的意思,de 在英語里是一個表示“分離,除掉”的前綴,所以 debug 的意思就是“除臭蟲”。一般把程序里的錯誤或者缺陷叫做 bug,據(jù)說是因為傳奇女程序員 Grace Hopper(格萊斯.霍普)有一次在 MARK II 計算機(就是那種早期的比較龐大的電腦)中發(fā)現(xiàn)了一只飛蛾,這只飛蛾導致了這臺電腦死機(夾在電腦的繼電器之間),霍普用鑷子把飛蛾夾出來,用透明膠布貼到筆記本上,并注明“第一個發(fā)現(xiàn)蟲子(bug)的實例”。從此,人們就沿用了這個有趣的稱呼,用 debug 來表示排除程序錯誤的行為?,F(xiàn)在霍普的筆記本,連同那只“呆萌”的飛蛾,陳列在美國歷史博物館里。在 Linux 下,常用的調(diào)試器是 GDB(GNU Debugger)。

當然,如果你有冒險精神,喜歡挑戰(zhàn),也可以不用調(diào)試器(通過一些小技巧也是可以自己找到錯誤所在的)。但是,我想一般來說你是會需要調(diào)試器的。
所以,我們就有兩個選擇了:
分開使用文本編輯器,編譯器和調(diào)試器這三種工具。雖然復雜一些,但是也行得通。在 Linux 環(huán)境下,不少程序員還是喜歡用這種方式來編程??赡懿皇恰把b”,要的就是這個 feel,倍爽兒。
使用一種軟件,這種軟件集合了這三種工具的功能。這種軟件被稱為 IDE(是 Integrated Development Environment 的縮寫,表示“集成開發(fā)環(huán)境”)。
一開始你可能會難以抉擇,到底用哪種呢?即使選擇了用 IDE,也會糾結(jié)到底用哪一個 IDE 好呢。
其實我們可以肯定的是:不論你選擇哪種工具,你都可以編寫你想要的程序。只是效率,個人習慣和特定平臺要求不同罷了。
其實,你也可以用 VS Code、Vim、Emacs 這樣的文本編輯器,通過安裝一些插件,使其能夠編譯運行 C語言的程序。網(wǎng)上有不少圖文教程,請大家自行搜索。
3. 選擇你的 IDE
我覺得有必要向大家展示幾個最著名的 IDE:
Clion :跨平臺的 IDE。目前我個人認為最棒的 C語言或 C++語言的 IDE,由著名的 JetBrains 公司開發(fā)。JetBrains 的明星 IDE 還有 PyCharm(適用于 Python 語言),WebStorm(適用于 JavaScript 語言),IntelliJ IDEA(適用于 Java 和 Kotlin 語言),GoLand(適用于 Go語言),等等。JetBrains 公司還開發(fā)了 Kotlin 語言,還和 Google 公司合作發(fā)行了 Android 的最強開發(fā) IDE:Android Studio。JetBrains 的 Clion 這款 IDE 非常強大,用戶體驗非常好。
缺點:基礎版本是收費的。不過,如果你是學生或教師,或者目的是課堂教學,或者你有不錯的開源項目,或者如果你是,可以享受 JetBrains 的免費或減免優(yōu)惠,請見 https://www.jetbrains.com/idea/buy/#discounts?billing=yearly 。Eclipse:免費,開源,跨平臺的 IDE。老牌的 IDE 了,Eclipse 也是一個開源基金會,旗下有不少優(yōu)秀的開源項目。如果要用 Eclipse 來開發(fā) C語言或 C++語言的程序,需要下載安裝 Eclipse CDT 這款 IDE。
缺點:近幾年感覺被 JetBrains 公司的 IDE 搶了風頭。我早年編程或開發(fā) Android 應用的時候使用過 Eclipse,但現(xiàn)在我已經(jīng)完全投向 JetBrains 的懷抱(Python 編程我用 PyCharm,C/C++ 編程我用 CLion,Java/Kotlin 編程我用 IntelliJ IDEA,Android 開發(fā)我用 Android Studio,等等),因為 JetBrains 的 IDE 真的都太好用了。不過目前還是有不少人使用 Eclipse 來進行開發(fā)的。Code::Blocks :免費,開源,跨平臺的 IDE。Code::Blocks 的開發(fā)環(huán)境搭建起來非??欤瑤缀醪恍枰裁磁渲?。
缺點:近幾年 Code::Blocks 更新有點緩慢,只有 Linux 和 Windows 的版本有陸陸續(xù)續(xù)的更新。感覺這款開源社區(qū)維護的 IDE 可能人手和資金有不足的趨勢。Visual Studio :簡稱 VS。VS 功能很完備,而且調(diào)試器很強大。
缺點:只能運行在 Windows 操作系統(tǒng)上,安裝體積大?;A版本是收費的。有一個 Visual Studio Community 的社區(qū)版本是免費的。Xcode :作為蘋果的編程當家 IDE,不得不說 Xcode 做得相當不錯??梢杂脕黹_發(fā)基本的小程序,也可以編寫 iPhone、iPad 和 macOS 的 app(模擬器速度超快),和智能手表應用,還可以和其他如 Unity 3D 引擎配合來編寫游戲。
缺點:只能運行在蘋果 macOS 操作系統(tǒng)上,安裝體積大。
對于各個平臺的學習 C語言的用戶,我個人的一些建議是:
Windows 用戶:可以安裝 Code::Blocks,或者 Visual Studio,或者 Eclipse CDT,等等。
Linux 用戶:可以安裝 Code::Blocks,或者 Eclipse CDT,等等。當然了,如果你是 C語言的初學者,Linux 下其實我比較推薦用文本編輯器來寫 C語言的源代碼,然后用 GCC 來編譯,用 GDB 來調(diào)試 C 語言的程序。要入門并提高 Linux,可以看我在慕課網(wǎng)的實戰(zhàn)課程《Linux核心技能與應用》,或者專欄《Linux命令行與Shell腳本編程大全》。
macOS 用戶:可以安裝 Xcode,或者 Eclipse CDT,或者 Visual Studio for Mac,等等。
學習這門 C語言的課程,大家可以隨意選用自己最喜歡和使用最順手的 IDE,網(wǎng)上也有各種 IDE 的下載安裝的圖文教程,我就不一一演示了。我希望大家能夠下載安裝自己最喜歡和用起來最順手的 IDE,通過 IDE 官網(wǎng)的教程或者網(wǎng)上的圖文教程來安裝配置好 IDE,并學會如何創(chuàng)建一個 C語言的項目,并運行。
當然,我前面提過,你也可以用 VS Code、Vim、Emacs 這樣的文本編輯器,通過安裝一些插件,使其能夠編譯運行 C語言的程序。
本課程中我會提供 C語言的代碼。IDE 的選擇我會使用個人喜歡的 IDE 來做演示。
4. 總結(jié)
一個程序要從開始編寫到能夠運行,一般來說需要三種工具:文本編輯器,編譯器,調(diào)試器(當然對于 Python 這樣的解釋性語言,就不需要編譯了)。
我們可以分開使用文本編輯器,編譯器,調(diào)試器這三種工具來完成任務。但是比較方便的是使用IDE(集成開發(fā)環(huán)境,混合了這三者)來開發(fā)。
IDE 只是工具。大家可以使用自己熟悉和喜歡的 IDE 來進行本課程的學習。
今天的課就到這里,一起加油吧。
5. 第一部分第三課預告
今天的課就到這里,一起加油吧!
下一課一起來寫我們的第一個 C語言的程序咯。
我是 謝恩銘,公眾號「程序員聯(lián)盟」(微信號:coderhub)運營者,慕課網(wǎng)精英講師 Oscar 老師,終生學習者。
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「向著標桿直跑」