C語(yǔ)言程序設(shè)計(jì)的七個(gè)準(zhǔn)備步驟

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ā)】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棘钞,一起剝皮案震驚了整個(gè)濱河市缠借,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宜猜,老刑警劉巖泼返,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異姨拥,居然都是意外死亡绅喉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門叫乌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)柴罐,“玉大人,你說(shuō)我怎么就攤上這事憨奸「锿溃” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵排宰,是天一觀的道長(zhǎng)似芝。 經(jīng)常有香客問(wèn)我,道長(zhǎng)板甘,這世上最難降的妖魔是什么党瓮? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮盐类,結(jié)果婚禮上寞奸,老公的妹妹穿的比我還像新娘呛谜。我一直安慰自己,他們只是感情好枪萄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布隐岛。 她就那樣靜靜地躺著,像睡著了一般呻引。 火紅的嫁衣襯著肌膚如雪礼仗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天逻悠,我揣著相機(jī)與錄音元践,去河邊找鬼。 笑死童谒,一個(gè)胖子當(dāng)著我的面吹牛单旁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饥伊,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼象浑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了琅豆?” 一聲冷哼從身側(cè)響起愉豺,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茫因,沒(méi)想到半個(gè)月后蚪拦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冻押,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年驰贷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洛巢。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡括袒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稿茉,到底是詐尸還是另有隱情锹锰,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布漓库,位于F島的核電站恃慧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏米苹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一砰琢、第九天 我趴在偏房一處隱蔽的房頂上張望蘸嘶。 院中可真熱鬧良瞧,春花似錦、人聲如沸训唱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)况增。三九已至赞庶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間澳骤,已是汗流浹背歧强。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留为肮,地道東北人摊册。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像颊艳,于是被迫代替她去往敵國(guó)和親茅特。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容