在Windows下,可執(zhí)行程序(Executable Program)大部分是 .exe 程序,它是一系列計(jì)算機(jī)指令和數(shù)據(jù)的集合。這些指令都是二進(jìn)制形式的,CPU可以直接識(shí)別,毫無(wú)障礙;但是對(duì)于程序員,它們非常晦澀,難以記憶和使用。
計(jì)算機(jī)發(fā)展初期,程序員就是使用這些二進(jìn)制形式的CPU指令來(lái)編寫程序的。
直接使用CPU指令編程對(duì)程序員來(lái)說(shuō)簡(jiǎn)直是噩夢(mèng),尤其是當(dāng)程序比較大的時(shí)候,不但編寫麻煩,需要頻繁查詢指令手冊(cè),而且除錯(cuò)會(huì)異常苦惱,要直接面對(duì)一堆二進(jìn)制數(shù)據(jù),讓人眼花繚亂。另外,用CPU指令編程步驟繁瑣,要考慮各種邊界情況和底層問(wèn)題,開發(fā)效率十分低下。這就倒逼程序員開發(fā)出了編程語(yǔ)言,提高自己的生產(chǎn)力;例如匯編、C語(yǔ)言、C++、Java、Python、Go語(yǔ)言等,都是在逐步提高開發(fā)效率。至此,編程終于不再是只有極客能做的事情了,不了解計(jì)算機(jī)的讀者經(jīng)過(guò)一定的訓(xùn)練也可以編寫出有模有樣的程序。
什么是編譯器
C語(yǔ)言代碼由固定的詞匯按照固定的格式組織起來(lái),簡(jiǎn)單直觀,程序員容易識(shí)別和理解,但是對(duì)于CPU,C語(yǔ)言代碼就是天書,根本不認(rèn)識(shí),CPU只認(rèn)識(shí)幾百個(gè)二進(jìn)制形式的指令。這就需要一個(gè)工具,將C語(yǔ)言代碼轉(zhuǎn)換成CPU能夠識(shí)別的二進(jìn)制指令,也就是將代碼加工成 .exe 程序;這個(gè)工具是一個(gè)特殊的軟件,叫做編譯器(Compiler)。編譯器能夠識(shí)別代碼中的詞匯、句子以及各種特定的格式,并將他們轉(zhuǎn)換成計(jì)算機(jī)能夠識(shí)別的二進(jìn)制形式,這個(gè)過(guò)程稱為編譯(Compile)。C語(yǔ)言的編譯器有很多種,不同的平臺(tái)下有不同的編譯器,例如:
Windows 下常用的是微軟開發(fā)的cl.exe,它被集成在 Visual Studio 或 Visual C++ 中,一般不單獨(dú)使用;
Linux 下常用的是 GUN 組織開發(fā)的GCC,很多 Linux 發(fā)行版都自帶 GCC;
Mac 下常用的是LLVM/Clang(以前是 GCC,后來(lái)由于 GCC 的不配合才改為 LLVM/Clang)。
你的代碼語(yǔ)法正確與否,編譯器說(shuō)了才算,我們學(xué)習(xí)C語(yǔ)言,從某種意義上說(shuō)就是學(xué)習(xí)如何使用編譯器,讓編譯器生成可執(zhí)行程序(例如 Windows 下的 .exe 程序)。編譯器可以100%保證你的代碼從語(yǔ)法上講是正確的,因?yàn)槟呐掠幸稽c(diǎn)小小的錯(cuò)誤,編譯也不能通過(guò),編譯器會(huì)告訴你哪里錯(cuò)了,便于你的更改。
選擇合適的IDE
實(shí)際開發(fā)中,除了編譯器是必須的工具,我們往往還需要很多其他輔助軟件,例如編輯器、調(diào)試器、文件管理等,這些工具通常被打包在一起,統(tǒng)一發(fā)布和安裝,例如 Visual Studio、Dev C++、Xcode、Visual C++ 6.0、Code::Blocks、C-Free 等,它們統(tǒng)稱為IDE(Integrated Development Environment,集成開發(fā)環(huán)境)。
01
Windows
Windows 下的 IDE 比較多,我推薦使用 Visual Studio 或者 Dev C++;如果你的操作系統(tǒng)是 XP 或者 Win7,你也可以使用 C-Free。另外,國(guó)內(nèi)很多高校還在使用 Visual C++ 6.0,把它作為C語(yǔ)言教學(xué)的工具。① Visual C++ 6.0(簡(jiǎn)稱VC 6.0)是微軟開發(fā)的一款經(jīng)典的IDE,很多高校都以 VC 6.0 為教學(xué)工具來(lái)講解C和C++。但VC 6.0是1998年的產(chǎn)品,很古老了,在 Win7、Win8、Win10 下會(huì)有各種各樣的兼容性問(wèn)題,甚至根本不能運(yùn)行,所以不推薦使用。② Visual Studio(簡(jiǎn)稱VS)是 Visual C++ 6.0 的升級(jí)版,增加了很多新特性,支持了更多的語(yǔ)言,是 Windows 下的標(biāo)準(zhǔn) IDE,實(shí)際開發(fā)中大家也都在使用。不過(guò) VS 有點(diǎn)龐大,安裝包有2~3G,下載不便,而且會(huì)安裝很多暫時(shí)用不到的工具,安裝時(shí)間在半個(gè)小時(shí)左右。為了適應(yīng)最新的 Windows 操作系統(tǒng),微軟每隔一段時(shí)間(一般是一兩年)就會(huì)對(duì) VS 進(jìn)行升級(jí)。VS 的不同版本以發(fā)布年份命名,例如 VS2010 是微軟于 2010 年發(fā)布的,VS2017 是微軟于 2017 年發(fā)布的。③ Dev C++ 是一款免費(fèi)開源的 C/C++ IDE,內(nèi)嵌 GCC 編譯器(GCC 編譯器的 Windows 移植版),是 NOI、NOIP等比賽的指定工具。Dev C++ 的優(yōu)點(diǎn)是體積小(只有幾十兆)、安裝卸載方便、學(xué)習(xí)成本低,缺點(diǎn)是調(diào)試功能弱。
NOI 是National Olympiad in Informatics的縮寫,譯為“全國(guó)青少年信息學(xué)奧林匹克競(jìng)賽”;NOIP 是National Olympiad in informatics in Provinces的縮寫,譯為“全國(guó)青少年信息學(xué)奧林匹克聯(lián)賽”。NOI、NOIP 都是奧林匹克競(jìng)賽的一種,參加者多為高中生,獲獎(jiǎng)?wù)邔⒈槐K偷矫拼髮W(xué)或者得到高考加分資格。
④ C-Free 是一款國(guó)產(chǎn)的 Windows 下的C/C++ IDE,最新版本是 5.0,整個(gè)軟件才 14M,非常輕巧,安裝也簡(jiǎn)單,界面也比 Dev C++ 漂亮。C-Free 的缺點(diǎn)也是調(diào)試功能弱。可惜的是,C-Free 已經(jīng)多年不更新了,組件都老了,只能在 XP、Win7 下運(yùn)行,在 Win8、Win10 下可能會(huì)存在兼容性問(wèn)題,所以我才重點(diǎn)推薦 Dev C++,否則我會(huì)更加傾向于 C-Free。
02
Linux
在 Linux 下使用GCC(GNU Compiler Collection,GNU編譯器套件)。GCC是GUN組織開發(fā)的自由軟件,除了支持C,還支持C++、Java、Objective-C等,它是Linux平臺(tái)編譯器的事實(shí)標(biāo)準(zhǔn)。
03
Mac OS X
在 Mac OS X 下使用 Xcode。Xcode 是由 Apple 官方開發(fā)的IDE,支持C、C++、Objective-C、Swift 等,可以用來(lái)開發(fā) Mac OS X 和 iOS 上的應(yīng)用程序。Xcode 最初使用 GCC 作為編譯器,后來(lái)由于 GCC 的不配合,改用 LLVM/Clang。
雖然C語(yǔ)言的 IDE 眾多,但是C語(yǔ)言的絕大部分內(nèi)容在各個(gè) IDE 下都是通用的。
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7601瀏覽量
136251 -
IDE
+關(guān)注
關(guān)注
0文章
335瀏覽量
46681 -
編譯器
+關(guān)注
關(guān)注
1文章
1618瀏覽量
49057
原文標(biāo)題:C語(yǔ)言編譯器和IDE的選擇
文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論