【C語言探索之旅】 第二課:工欲善其事,必先利其器,之旅必先利其器
內容簡介
1、課程大綱
2、第一部分第二課:工欲善其事,必先利其器
3、第一部分第三課預告:你的第一個程式
課程大綱
我們的課程分為四大部分,每一個部分結束後都會有練習題,並會公布答案。還會帶大家用C語言編寫三個遊戲。
C語言編程基礎知識
什麼是編程?
工欲善其事,必先利其器
你的第一個程式
變數的世界
運算子
條件運算式
迴圈語句
實戰:第一個C語言小遊戲
函數
練習題
習作:完善第一個C語言小遊戲
C語言進階技術
模組化編程
進擊的指標,C語言王牌
數組
字串
預先處理
建立你自己的變數類型
檔案讀寫
動態分配
實戰:“懸掛小人”遊戲
安全的文本輸入
練習題
習作:用自己的語言解釋指標
用基於C語言的SDL庫開發2D遊戲
安裝SDL
建立視窗和畫布
顯示映像
事件處理
實戰:“超級瑪麗推箱子”遊戲
掌握時間的使用
用SDL_ttf編輯文字
用FMOD控制聲音
實戰:可視化的聲音譜線
練習題
資料結構
第一部分第二課:工欲善其事,必先利其器
昨天的課,反響比較好,超乎了我的想象。激動,很感恩。
昨天說了程式員需要具備三個特質:
耐心,邏輯,冷靜。
我突然感覺到還需要第四大特質---謙虛,相當重要。因為你只會發現你越學習越覺得不足,外面的世界太大了,編程的前輩和大牛太多,新技術永遠比你學習速度快地湧現,所以永遠保持一顆初心,不得瑟。
凡事多感恩,一方面感謝協助過我們的人,也感謝給我們逆耳忠言的人,也要感謝陪伴我們的電腦和開源社區等。
其實,我一直覺得程式員是一個不錯的職業,雖然可能程式員有不少職業病,例如話少,宅,呆萌,害羞等,
但是程式員比較單純,這是跟與我們朝夕相伴的電腦分不開的。因為機器不會說假話,1就是1,0就是0,絕對忠誠,高效和不變心(芯)。所以,和機器長期打交道之後的程式員也變得不是那麼有心機,感覺萌萌噠。
之前網上有一篇文章,說找程式員做男女朋友的好處,挺有意思。
跟公司裡幾個同事相處下來也發現,程式員真的都很有趣,很可愛,很童真。
只是在國內程式員還不是太被重視,但我相信隨著中國的強大,會改觀的。
好了言歸正傳。在上一課《什麼是編程》後,這一課我們就正式進入C語言編程的正題了。
這一課我們回答以下問題:
我們需要什麼軟體來編程呢?
這一課大家可以很輕鬆地度過,因為沒有什麼痛點。我們會花點時間來認識一些常用的編程軟體。
應該好好享受這一課,因為下一課開始我們就要一起寫程式了,所以該喝咖啡的喝咖啡,該吃烤雞的吃烤雞,休息好了,才能上陣。
編程的必要工具
依你看,什麼軟體對編程來說是必要的呢?如果你認真學了上一課,那你至少可以說出一種吧。
對了,就是編譯器。這個重要的程式可以把你的原始碼(用進階語言如C語言寫的指令)轉換成電腦可以理解的二進位碼(只包含0和1的,類似 01100110001111011101010...)。
上一課我們也提了一下,每種進階語言都有對應的編譯器(當然對於Python這樣的解釋性語言,就不需要編譯了),光是C語言的編譯器就有很多。比較常用的有GCC(GNU C Compiler。GNU是國際著名的自由軟體基金會,GNU是“GNU is Not Unix” (GNU不是Unix)的遞迴縮寫法,老外總是那麼頑皮,起名字也喜歡整一些編程的知識,比如Linux就是“Linux Is Not Unix”(Linux不是Unix)的遞迴。要不就用很多動物的名字或表徵圖,特別好玩)。
除了編譯器,我們還需要什麼工具呢?
就不賣關子了,下面列出編程的基本工具:
文字編輯器:用來寫原始碼的工具。理論上Windows作業系統的記事本或者Linux下的VI編輯器都可以作為文字編輯器來使用。但是,最好還是用一些更進階點的文字編輯器,比如可以支援代碼高亮顯示,方便你在代碼間跳轉等。個人非常推薦的文字編輯器是Emacs,真的非常強,跨平台(蘋果Mac,Windows,Linux等),自由定製,各種快速鍵組合,收發郵件,看視頻,瀏覽網頁,瀏覽PDF,沒有你做不到,只有想不到(略有誇張...),可以讓你編輯代碼非常高效。我之前使用的是VIM,也是很不錯的,但是後來用了Emacs,感覺還是更喜歡Emacs一些。當然這見仁見智。還有一個文字編輯器:Notepad++也是挺好的,經過配置和安裝一些外掛程式,可以很強大,不過貌似沒有蘋果電腦版本。
編譯器:已經提過了,用來轉換(或叫編譯)你的原始碼成為二進位碼
調試器:Debugger,用來跟蹤、發現程式裡的錯誤的工具。這裡出現一個新名詞,調試(Debug)。bug是英語臭蟲,蟲子的意思,de在英語裡是一個表示“分離,除掉”的首碼,所以Debug的意思就是除臭蟲。一般把程式裡的錯誤或者缺陷叫做bug(臭蟲),據說是因為傳奇女程式員Grace Hopper(格萊斯.霍普)有一次在MARK II電腦(就是那種早期的比較龐大的電腦)中發現了一隻飛蛾,這隻飛蛾導致了這台電腦死機(夾在電腦裡的繼電器之間),霍普用鑷子把飛蛾夾出來,用透明膠布貼到筆記本上,並註明“第一個發現蟲子(bug)的執行個體”。從此,人們就沿用了這個稱呼,用debug表示排除程式錯誤的行為。現在霍普的筆記本,連同那隻呆萌的飛蛾,陳列在美國歷史博物館裡。
霍普的筆記本和光榮載入曆史的飛蛾
當然,如果你有冒險精神,喜歡挑戰,也可以不用調試器(通過一些小技巧也是可以自己找到錯誤所在的)。但是,我想一般來說你是會需要調試器的。
所以,我們就有兩個選擇了:
一開始你可能會難以抉擇,到底用哪種呢?即使選擇了用IDE,也會糾結到底用哪一個IDE好呢。其實我們可以肯定的是:不論你選擇哪種工具,你都可以編寫你想要的程式。只是效率,個人習慣和特定平台要求不同罷了。
個人淺見:
如果剛接觸C語言,盡量在Linux的命令列裡學習C語言編程。一開始不要怎麼用IDE。因為IDE做得太好了,都有提示,代碼自動補全,自動幫你添加代碼,你就不能學到很多,也記不牢。等編程水平好了一些,再用IDE不遲,那個時候IDE可以提高你的編程效率。一開始用emacs或者vim編寫C語言,用GCC編譯C語言,用GDB(GNU Debugger)調試C語言,是不錯的選擇。
當然了,我們還是會花比較多的篇幅介紹幾個常用的IDE。
選擇你的IDE
我們覺得有必要向大家展示幾個最著名的IDE,這幾個都是免費的(只買對的,不選貴的)
Code::Blocks:個人比較喜歡的一款IDE,免費,開源,跨平台。在之後的課程裡,我們會用Code::Blocks來做開發,因為Code::Blocks的開發環境搭建起來太快了,不需要什麼配置。
可以運行在蘋果Mac,Windows,Linux等大多數作業系統上
Visual Studio:基礎版本是收費的。但是幸好有一個Visual Studio Express的版本是免費的。VS功能很完備,而且調試器很強大。
只能運行在Windows作業系統上
Xcode:作為蘋果的當家IDE,不得不說Xcode真的做得太棒了。可以用來開發基本的小程式,也可以編寫iPhone和iPad的App(模擬器速度超快),和智能手錶應用,還可以和其他如Unity 3D引擎配合來編寫遊戲。
只能運行在蘋果Mac OS X作業系統上
Code::Blocks
Code::Blocks是一款很不錯的IDE,不過目前只有英文版,當然網上也有漢化版本,不過既然學編程,就盡量把英語這關過了,也不需要太厲害的英語,基礎就好。畢竟漢化版有的翻譯不到位,可能會影響使用。而且好的編程資源基本都是英語的。
下載Code::Blocks
先去Code::Blocks的官方下載頁面:http://www.codeblocks.org/downloads/binaries
安裝運行Code::Blocks
Code::Blocks的安裝太簡單了,就跟安裝QQ沒什麼區別,一路預設到底就好。
安裝完之後雙擊運行,你可以看到如的介面
中標註了四個地區:
工具列:有很多按鈕,但只有幾個是真正我們時常用到的。
專案檔列表區:左邊的欄裡面顯示了你的項目的所有檔案
主介面:寫代碼的地方
通知欄:會看到啟動並執行錯誤,編譯的問題等等
如何來建立一個C語言的基本的控制台應用程式呢?
首先到菜單裡,File -> New -> Project,會開啟如下的視窗
可以看到,Code::Blocks支援非常多的程式類型,這些程式類型用到不同的庫,比如SDL(開發2D程式),OpenGL(開發3D程式),Qt和wxWidgets,等等。目前,這些表徵圖很多都只是好看而已,因為你還沒安裝對應的庫,所有不能用。我們會在後續課程開發基於SDL庫的遊戲。暫時我們只用最基本的Console application(控制台應用,簡單來說就是會彈出一個框,裡面顯示程式啟動並執行結果)。
選擇 Console application,點擊Go按鈕到下一步
“Project Title”裡面填寫你要建立的項目名稱,我們填的是著名的 HelloWorld。“Folder to create project in” 是選擇項目存放的路徑。
點擊Next到下一步,
這裡我們不必更改什麼,預設就好。點擊Finish(完成)結束配置,Code::Blocks就會建立你的第一個項目了。
開啟Sources裡的main.c這個C語言的原始碼檔案,點擊上面工具列裡有一個綠色的三角形按鈕,運行程式,它會提示你是否要編譯,點擊“yes”,運行起來後我們的第一個控制台程式輸出 Hello World!
Visual Studio
下載 Visual Studio Express,去官方下載頁面 http://www.visualstudio.com/products/visual-studio-express-vs
選擇適合你的作業系統的版本來下載。
因為小編是在蘋果電腦上編輯文章的,所以就不多做示範了。請大家去參考網上的安裝和使用圖文教程。不好意思啦。
安裝完運行後應該是與Code::Blocks類似的布局
Xcode
Mac作業系統裡有不少IDE,但是Xcode卻是廣大蘋果使用者的最愛。
不是所有的蘋果使用者都是程式員,所以蘋果沒有在Mac系統裡預裝Xcode,你需要到Mac App Store(市集)下載Xcode(需要有蘋果賬戶,沒有可以註冊一個)。
安裝很方便,只要去App Store搜尋Xcode,然後點擊Install(安裝),就安裝到應用程式裡了。將Xcode運行起來
然後選擇 Create a new Xcode project(建立一個新的Xcode項目),會彈出如下視窗
選擇 OS X -> Application -> Command Line Tool,點擊Next到下一步
Project Name裡填寫項目名稱,我們填了HelloWorld。Language(語言)選擇 C 語言,點Next下一步,會讓你選擇專案檔夾的存放路徑,隨便選擇。然後點擊Finish完成。
項目開啟之後,點擊 三角形 按鈕,運行,可以看到輸出了 Hello World!
總結一下
一個程式要從開始編寫到能夠運行,一般來說需要三種工具:文字編輯器,編譯器,調試器(當然對於Python這樣的解釋性語言,就不需要編譯了)
我們可以分開使用這三種工具來完成任務。但是比較方便的是使用IDE(整合式開發環境,混合了這三者)來開發。
Code::Blocks,Visual Studio(或Visual C++),Xcode是最著名的IDE,當然還有很多優秀的IDE(例如 Eclipse),就不一一介紹了。IDE只是工具。
第一部分第三課預告:你的第一個程式
今天的課就到這裡,一起加油吧。下一課一起來寫我們的第一個C語言的程式咯。
程式員聯盟 公眾號*您若覺得本文不錯,請點擊“分享”
*新朋友請關注「程式員聯盟」搜公眾號 ProgrammerLeague
小編的號:frogoscar
小編的郵箱: enmingx@gmail.com
“程式員聯盟”公眾號專為程式員,App設計師,各位喜愛編程和熱愛分享的小夥伴們推送各樣編程相關知識,優秀軟體推薦,業界動態等。搜尋ProgrammerLeague 加關注~
持續關注 程式員聯盟 公眾號,更多有趣,有料,有亮點的內容等著你哦!