在Windows下,可執行程序(Executable Program)大部分是 .exe 程序,它是一系列計算機指令和數據的集合。這些指令都是二進制形式的,CPU可以直接識別,毫無障礙;但是對於程序員,它們非常晦澀,難以記憶和使用。
計算機發展初期,程序員就是使用這些二進制形式的CPU指令來編寫程序的。
直接使用CPU指令編程對程序員來說簡直是噩夢,尤其是當程序比較大的時候,不但編寫麻煩,需要頻繁查詢指令手冊,而且除錯會異常苦惱,要直接面對一堆二進制數據,讓人眼花缭亂。另外,用CPU指令編程步驟繁瑣,要考慮各種邊界情況和底層問題,開發效率十分低下。
這就倒逼程序員開發出了編程語言,提高自己的生產力;例如匯編、C語言、C++、Java等,都是在逐步提高開發效率。至此,編程終於不再是只有極客能做的事情了,不了解計算機的讀者經過一定的訓練也可以編寫出有模有樣的程序。
什麼是編譯器
C語言代碼由固定的詞匯按照固定的格式組織起來,簡單直觀,程序員容易識別和理解,但是對於CPU,C語言代碼就是天書,根本不認識,CPU只認識幾百個二進制形式的指令。這就需要一個工具,將C語言代碼轉換成CPU能夠識別的二進制指令,也就是將代碼加工成 .exe 程序;這個工具是一個特殊的軟件,叫做編譯器(Compiler)。
編譯器能夠識別代碼中的詞匯、句子以及各種特定的格式,並將他們轉換成計算機能夠識別的二進制形式,這個過程稱為編譯(Compile)。
C語言的編譯器有很多種,Windows 下常用的是微軟開發的 cl.exe,Linux 下常用的是GUN組織開發的 GCC。
你的代碼語法正確與否,編譯器說了才算,我們學習C語言,從某種意義上說就是學習如何使用編譯器,讓編譯器生成 .exe 程序。
編譯器可以100%保證你的代碼從語法上講是正確的,因為哪怕有一點小小的錯誤,編譯也不能通過,編譯器會告訴你哪裡錯了,便於你的更改。
選擇合適的IDE
實際開發中,除了編譯器等必須的工具,我們往往還需要很多其他輔助軟件,例如編輯器、調試器、文件管理等,這些工具通常被打包在一起,統一發布和安裝,例如 Visual C++ 6.0、Visual Studio、Dev C++、Code::Blocks、C-Free 等,它們統稱為IDE(Integrated Development Environment,集成開發環境)。
在 Linux 下使用GCC(GNU Compiler Collection,GNU編譯器套件)。GCC是GUN組織開發的自由軟件,除了支持C,還支持C++、Java、Objective-C等,它是Linux平台編譯器的事實標准。
在 Mac OS X 下使用 Xcode。Xcode 是由Apple官方開發的IDE,支持C、C++、Objective-C、Java等,可以用來開發OS X和iOS上的應用程序。Xcode最初使用GCC作為編譯器,後來由於GCC的不配合,改用LLVM。
在Windows下,IDE的選擇是很糾結的事情:
1) Visual C++ 6.0(簡稱VC 6.0)是微軟開發的一款經典的IDE,很多高校都以 VC 6.0 為教學工具來講解C和C++。但VC 6.0是1998年的產品,很古老了,在Win7下有各種各樣的兼容性問題,在Win8、Win10下根本不能運行。
2) Visual Studio(簡稱VS)是 Visual C++ 6.0 的升級版,增加了很多特性,支持了更多的語言,非常龐大,安裝包有2~3G,下載不便,而且會安裝很多暫時用不到的工具,安裝時間在半個小時左右。
另外,VS 安裝的組件眾多,不容易卸載干淨。如果你的計算機配置低,運行Visual Studio還會吃力。
3) C-Free、Dev C++、Code::Blocks 默認使用MinGW(GCC編譯器的Windows版本)或者Cygwin(Windows平台上運行的Linux模擬環境),不是真實的Windows開發環境,但它們小巧、容易安裝和卸載。
在Windows下的大部分程序員都使用VS,不過考慮到初學者下載、安裝和運行VS的成本,本教程約定:在Windows下使用C-Free來運行C語言,必要時才講解VS或VC。
好在C語言的絕大部分內容是通用的,不針對具體的編譯器,各位讀者也可以放心使用 Dev C++、Code::Blocks 等其他IDE,它們都是大同小異的,相信你肯定能觸類旁通。
接下來的幾節我們會講解各種 IDE 的使用,也即如何在 Windows、Linux、Mac OS X 下運行C語言程序。
如果讀者還未配備一台電腦,或者當前不方便使用電腦,也可以在手機上運行C語言程序,這將在《在手機上運行C語言程序》一節中詳細講解。