提示
以上描述的過程只是一種很簡(jiǎn)單的情況。用C++編寫復(fù)雜的應(yīng)用程序時(shí),通常一個(gè)程序員(甚至是一個(gè)程序員團(tuán)隊(duì))會(huì)編寫多個(gè)源代碼文件。
為了讓該過程自動(dòng)化,程序員通常會(huì)使用綜合性的開發(fā)工具——集成開發(fā)環(huán)境(Integrated Development Environment,IDE)。一個(gè)典型的IDE集合了編輯器、編譯器、鏈接器以及其他工具。Microsoft的Visual C++ Express Edition是Windows下一款比較流行(且免費(fèi))的IDE。在http://www.microsoft.com/express/上可以找到關(guān)于此IDE的更多信息(且能下載到一份副本)。
1.1.3 錯(cuò)誤處理
在描述從C++源代碼生成可執(zhí)行文件的過程時(shí),我們忽略了一個(gè)小細(xì)節(jié)——可能出現(xiàn)的錯(cuò)誤。如果人類生來就要犯錯(cuò),那么程序員是人類中犯錯(cuò)最多的。即使是最優(yōu)秀的程序員編寫的代碼在第一次(或者以后的好幾次)生成可執(zhí)行文件的過程中都要產(chǎn)生錯(cuò)誤。程序員必須修正所有的錯(cuò)誤,然后重新執(zhí)行整個(gè)生成過程。下面是使用C++編程會(huì)遇到的一些基本類型的錯(cuò)誤:
● 編譯錯(cuò)誤。這類錯(cuò)誤發(fā)生在代碼編譯階段,后果是無法生成目標(biāo)文件。這種錯(cuò)誤可能是語法錯(cuò)誤,意思是編譯器無法理解某些代碼。語法錯(cuò)誤經(jīng)常是由像輸入錯(cuò)誤這樣的簡(jiǎn)單錯(cuò)誤導(dǎo)致的。編譯器還能發(fā)出警告。盡管通常情況下不必在意警告,但還是應(yīng)該將它們當(dāng)做錯(cuò)誤來對(duì)待,進(jìn)行修復(fù)并重新編譯。
● 鏈接錯(cuò)誤。這類錯(cuò)誤發(fā)生在鏈接過程中,并可能提示無法找到程序的某些外部引用。解決辦法通常是調(diào)整程序中出現(xiàn)問題的引用關(guān)系,然后重新編譯/鏈接。
● 運(yùn)行時(shí)錯(cuò)誤。這類錯(cuò)誤發(fā)生在可執(zhí)行文件的運(yùn)行過程中。如果程序執(zhí)行了某些非法操作,那么有可能突然崩潰。但是有一種更難以捉摸的運(yùn)行時(shí)錯(cuò)誤(邏輯錯(cuò)誤)能讓程序以出人意料的方式運(yùn)行。如果您曾經(jīng)玩過某個(gè)游戲,里面的某個(gè)角色能在空中行走(而這個(gè)角色不應(yīng)該有能力在空中行走),那么所看到的就是一個(gè)邏輯錯(cuò)誤。
現(xiàn)實(shí)世界
游戲公司和其他軟件制造商一樣努力使自己的產(chǎn)品沒有錯(cuò)誤。他們最后的防線是質(zhì)量保證人員(游戲測(cè)試員)。游戲測(cè)試員以玩游戲?yàn)樯?,但他們的工作不像想象的那樣有趣。測(cè)試員必須重復(fù)地測(cè)試游戲的同一部分(也許有幾百次),嘗試異常情況并且詳細(xì)記錄任何異常。這種工作十分單調(diào),薪酬也不高。但是眾所周知,成為測(cè)試人員是進(jìn)入游戲公司的一種極佳方式。
1.1.4 理解ISO標(biāo)準(zhǔn)
C++的ISO標(biāo)準(zhǔn)對(duì)C++進(jìn)行了定義,并準(zhǔn)確地描述了其工作方式。它還定義了一組稱為標(biāo)準(zhǔn)庫的文件,其中包含用于完成一般編程任務(wù)(如I/O,即獲取輸入和顯示輸出)的程序塊。標(biāo)準(zhǔn)庫讓程序員的工作變得簡(jiǎn)單,而且還提供了基礎(chǔ)性代碼以防止程序員重復(fù)編寫代碼。本書中的所有程序都將使用標(biāo)準(zhǔn)庫。
提示
ISO標(biāo)準(zhǔn)經(jīng)常稱為ANSI標(biāo)準(zhǔn)或ANSI/ISO標(biāo)準(zhǔn)。不同的名稱代表了審核與建立該標(biāo)準(zhǔn)的不同委員會(huì)的首字母縮寫。遵循ISO標(biāo)準(zhǔn)的C++代碼最常見的叫法是標(biāo)準(zhǔn)C++。
本書使用了Microsoft的Visual C++ 2010 Express Edition來開發(fā)程序。它的編譯器嚴(yán)格遵循ISO標(biāo)準(zhǔn),所以其他現(xiàn)代編譯器也應(yīng)該能夠編譯、鏈接和運(yùn)行本書的所有程序。然而,如果您正在使用的是Windows操作系統(tǒng),推薦使用Visual C++。
提示
附錄A中描述了使用Microsoft Visual C++ 2010 Express Edition創(chuàng)建、保存、編譯和運(yùn)行Game Over程序的詳細(xì)步驟。如果使用其他編譯器或者IDE,請(qǐng)查閱其文檔。