C語(yǔ)言是面向過(guò)程的剃斧,而C++是面向?qū)ο蟮?/p>
C和C++? 的區(qū)別:
C是一個(gè)結(jié)構(gòu)化語(yǔ)言吆豹,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何通過(guò)一個(gè)過(guò)程喇伯,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過(guò)程(事務(wù))控制)。
C ++ 拨与,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型稻据,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問(wèn)題域,這樣就可以通過(guò)獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過(guò)程(事務(wù))控制买喧。 所以C與C ?的最大區(qū)別在于它們的用于解決問(wèn)題的思想方法不一樣捻悯。之所以說(shuō)C ?比C更先進(jìn)匆赃,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C ?之中 ”。
C是一種編譯性語(yǔ)言秋度。如果你以前從來(lái)沒(méi)有接觸過(guò)任何的編程語(yǔ)言炸庞,那么你則需要學(xué)習(xí)一下一個(gè)拆分的邏輯思維。當(dāng)我們想要寫一個(gè)項(xiàng)目或者軟件的時(shí)候荚斯,我們需要把這個(gè)整體拆分為7個(gè)步驟埠居,這樣也會(huì)讓你的思路看起來(lái)更有條理。
當(dāng)然啦事期,這是最完美的狀態(tài)滥壕。然而在實(shí)際操作中,并且是在較大的項(xiàng)目中兽泣,你可能需要做一些反復(fù)工作绎橘,用后一步所了解到的內(nèi)容來(lái)改進(jìn)前一個(gè)步驟。
第1步: 定義程序目標(biāo)
當(dāng)你在開始寫程序之前唠倦,你應(yīng)對(duì)希望程序要做什么有一個(gè)清晰的想法称鳞。考慮程序需要的信息稠鼻,程序需要進(jìn)行的計(jì)算和操作冈止,以及程序應(yīng)該向你報(bào)告的信息。在這一規(guī)劃階段候齿,你應(yīng)該用一般概念來(lái)考慮問(wèn)題熙暴,而不是一些具體的計(jì)算機(jī)語(yǔ)言術(shù)語(yǔ)來(lái)考慮。簡(jiǎn)單來(lái)說(shuō)慌盯,我們所要思考的就是周霉,這個(gè)程序是用來(lái)做什么的。
第2步: 設(shè)計(jì)程序
當(dāng)你在對(duì)程序需要完成的事情有一個(gè)概念性的認(rèn)識(shí)后亚皂,你就應(yīng)該決定程序要如何完成它俱箱,用戶界面應(yīng)該是怎么樣的,程序應(yīng)該如何組織孕讳,目標(biāo)用戶是誰(shuí)匠楚,你有多長(zhǎng)的時(shí)間來(lái)完成實(shí)現(xiàn)這個(gè)程序等等。
這個(gè)部分其實(shí)就像寫作文一樣厂财,當(dāng)你想好要寫什么題材的文章之后芋簿,接下來(lái)就要列出你文章中的大綱,需要幾個(gè)段落璃饱,需要用到什么手法与斤,每個(gè)段落寫的是什么內(nèi)容,一共有多少時(shí)間來(lái)給你完成這篇文章。把這些內(nèi)容規(guī)劃出來(lái)列成大綱撩穿,然后依次實(shí)現(xiàn)就可以了磷支。
第3步: 編寫代碼
在程序有了清晰的設(shè)計(jì)后,就可以通過(guò)編寫代碼來(lái)實(shí)現(xiàn)它了食寡。也就是說(shuō)雾狈,將你的設(shè)計(jì)構(gòu)思轉(zhuǎn)變?yōu)?C 語(yǔ)言。這里是你真正需要使用 C 知識(shí)的地方抵皱。你可以在紙上勾畫你的想法善榛,但最終必須將代碼輸入計(jì)算機(jī)。一般來(lái)說(shuō)呻畸,需要使用文本編輯器來(lái)創(chuàng)建一種稱為源代碼的文件移盆,該文件包含你的程序設(shè)計(jì)的的 C 實(shí)現(xiàn)形式。
例:比如我要實(shí)現(xiàn)在屏幕上實(shí)現(xiàn)輸出 helloworld伤为!
----------------------------------------------------------------------------------------
#include
int main()
{
printf ("helloworld咒循!\n");
return 0;
}
這是一個(gè)最基礎(chǔ)的C語(yǔ)言程序,其作用就是在屏幕上輸出一句helloworld绞愚!叙甸。
第4步:編譯
下一個(gè)步驟是編譯源代碼。不過(guò)位衩,編譯細(xì)節(jié)取決于編程環(huán)境蚁署,下面很快就會(huì)看到一些常見(jiàn)的環(huán)境,讓我們先對(duì)要做的事情有一個(gè)一般性的了解蚂四。
前面講過(guò),編譯器是一個(gè)程序哪痰,其工作是將源代碼轉(zhuǎn)換為可執(zhí)行代碼遂赠。可執(zhí)行代碼是用計(jì)算機(jī)的機(jī)器語(yǔ)言表示的代碼晌杰。這種語(yǔ)言是由數(shù)字代碼表示的詳細(xì)指令組成跷睦。C 編譯器用來(lái)將 C 語(yǔ)言轉(zhuǎn)換成機(jī)器語(yǔ)言。C 編譯器還從 C 的庫(kù)中向最終程序加入代碼肋演。庫(kù)中包括著許多標(biāo)準(zhǔn)例程供你使用抑诸,例如 printf()和scanf()。最后的結(jié)果是爹殊,形成一個(gè)包含計(jì)算機(jī)可以理解的代碼并且你能夠運(yùn)行的可執(zhí)行文件蜕乡。
編譯器還檢查你的程序是否為有效的 C 語(yǔ)言程序。如果編譯器發(fā)現(xiàn)錯(cuò)誤梗夸,就將錯(cuò)誤報(bào)告給你层玲,而且不生成可執(zhí)行文件。理解編譯器的報(bào)錯(cuò)信息是你將要學(xué)習(xí)的另一種技能。
第5步:運(yùn)行程序
一般來(lái)說(shuō)辛块,可執(zhí)行文件就是你打開之后可以直接能夠運(yùn)行的文件畔派。在一般的操作系統(tǒng)中(例如Windows,Linux)润绵,要想運(yùn)行某個(gè)程序线椰,只需要雙擊這個(gè)文件或者右鍵打開就可以運(yùn)行,這就是可執(zhí)行文件尘盼。那要怎么才能生成可執(zhí)行文件呢憨愉?例如為在Windows環(huán)境中,用QT編譯器運(yùn)行程序可以用快捷鍵Ctrl+R生成程序并顯示程序結(jié)構(gòu)悔叽,如果用Visual Studio編譯器則是Ctrl+F5編譯運(yùn)行莱衩。
第6步: 測(cè)試和調(diào)試程序
程序能夠正常運(yùn)行那是極好的,但有時(shí)候它也可能運(yùn)行不正確娇澎。因此笨蚁,你應(yīng)該進(jìn)行檢查,看程序是否存在錯(cuò)誤趟庄。這個(gè)錯(cuò)誤在計(jì)算機(jī)行話中稱之為 Bug括细。調(diào)試(Debugging)就是要發(fā)現(xiàn)并修正程序錯(cuò)誤。學(xué)習(xí)中自然會(huì)犯錯(cuò)誤戚啥,看起來(lái)編程中似乎也會(huì)犯錯(cuò)誤奋单,所以在將所學(xué)知識(shí)應(yīng)用到編程中時(shí),最好準(zhǔn)備好時(shí)時(shí)想到自己很容易犯錯(cuò)誤猫十。當(dāng)你成為本領(lǐng)更強(qiáng)览濒,技藝更精湛的程序員時(shí),你的錯(cuò)誤也會(huì)變得更嚴(yán)重而且不易察覺(jué)拖云。
你犯錯(cuò)誤的機(jī)會(huì)很多贷笛。你可能會(huì)犯一個(gè)基本設(shè)計(jì)錯(cuò)誤,可能會(huì)錯(cuò)誤地實(shí)現(xiàn)了好的想法宙项,可能會(huì)因?yàn)楹雎粤四硞€(gè)條件而將程序搞得一團(tuán)糟乏苦,可能會(huì)錯(cuò)誤地使用C,可能會(huì)犯打字母錯(cuò)誤尤筐,也可能會(huì)將中英文輸入搞錯(cuò)等等.....
不過(guò)汇荐,這并不是什么丟臉的事情,每個(gè)人都會(huì)犯錯(cuò)誤盆繁,當(dāng)你被一個(gè)錯(cuò)誤折騰的焦頭爛額的時(shí)候掀淘,你才會(huì)深刻的記住這個(gè)錯(cuò)誤,以確保下次不會(huì)再犯油昂。另外繁疤,編譯器擁有簡(jiǎn)單找錯(cuò)誤的能力咖为,雖然不會(huì)具體到教你怎么改,但它會(huì)幫你標(biāo)記出錯(cuò)誤所在的那行稠腊,只要你認(rèn)真仔細(xì)的檢查錯(cuò)誤的那幾行并改正就可以了躁染。
第7步: 維護(hù)和修改程序
在為自己或?yàn)閯e人創(chuàng)建程序后,該程序可能會(huì)有更廣泛的應(yīng)用架忌。如果是這樣吞彤,你可能會(huì)發(fā)現(xiàn)需要對(duì)其進(jìn)行更改,也就是項(xiàng)目的維護(hù)和修改叹放。在這里不得不提代碼風(fēng)格和注釋的作用了饰恕,很多人都不喜歡寫注釋,代碼風(fēng)格也極亂井仰÷袂叮可當(dāng)你去維護(hù)別人程序的時(shí)候,如果他沒(méi)有寫過(guò)注釋俱恶,并且代碼一堆堆的擠在一起雹嗦,那你可能會(huì)頭痛的要死,只想破口大罵寫這個(gè)程序的程序員合是。由人及己了罪,養(yǎng)成一個(gè)良好的編程風(fēng)格是一個(gè)非常好的習(xí)慣,寫完程序順便標(biāo)上注釋聪全。
總結(jié)
編程工作通常不像上面講述的過(guò)程那樣是一條線泊藕。有時(shí)你必須在不同步驟間來(lái)回反復(fù)。例如难礼,當(dāng)你編寫代碼時(shí)娃圆,可能會(huì)發(fā)現(xiàn)你的計(jì)劃是不切實(shí)際的。你可能會(huì)看到一種更好的實(shí)現(xiàn)方式蛾茉,或者在看到程序的運(yùn)行后踊餐,讓你有了改變?cè)撛O(shè)計(jì)的想法。對(duì)你的編程工作加以記錄有助于在各階段之間反復(fù)改動(dòng)臀稚。
很多人在學(xué)習(xí)過(guò)程中都往往會(huì)忽視【定義程序目標(biāo)】和【設(shè)計(jì)該程序】而直接到【編寫程序】。你編寫的第一個(gè)程序helloworld三痰!非常簡(jiǎn)單吧寺,可以在頭腦中想你到整個(gè)過(guò)程。如果犯了錯(cuò)誤散劫,也容易找到稚机。可隨著程序變得更長(zhǎng)更復(fù)雜获搏,頭腦中的想象就開始無(wú)能為力了赖条,而且錯(cuò)誤也將變得難以發(fā)現(xiàn)。最終,那些無(wú)視計(jì)劃步驟的人會(huì)浪費(fèi)大量時(shí)間并帶來(lái)混亂和挫折纬乍,因?yàn)樗麄兙帉懗隽穗y看碱茁,功能不正常而且艱深難懂的程序。工作越大越復(fù)雜仿贬,需要的計(jì)劃工作量就越大纽竣。
所以,給你一句忠告茧泪,那就是應(yīng)該養(yǎng)成在編寫代碼前先進(jìn)行規(guī)劃的習(xí)慣蜓氨。一定要記下程序的目標(biāo),并勾勒出設(shè)計(jì)概貌队伟。這樣那么你會(huì)節(jié)省大量的時(shí)間并且做出來(lái)的程序也會(huì)非常不錯(cuò)穴吹。
如果可以的話,請(qǐng)大家多多轉(zhuǎn)發(fā)關(guān)注嗜侮,謝謝支持港令!
想要學(xué)習(xí)交流的小伙伴可以申請(qǐng)加群!群號(hào):666295498 凌云
同時(shí)也可以關(guān)注我們的微信公眾號(hào):【凌云c語(yǔ)言游戲開發(fā)】