c語(yǔ)言程序設(shè)計(jì)怎么學(xué)習(xí)
c語(yǔ)言程序設(shè)計(jì)怎么學(xué)習(xí)
c語(yǔ)言程序設(shè)計(jì)初學(xué)者遇到最多的困惑是:上課也能聽(tīng)懂,書(shū)上的例題也能看明白,可是到自己動(dòng)手做編程時(shí),卻不知道如何下手。那么c語(yǔ)言程序設(shè)計(jì)怎么學(xué)習(xí)呢?以下是學(xué)習(xí)啦小編為你整理的關(guān)于c語(yǔ)言程序設(shè)計(jì)的學(xué)習(xí)方法的資料,希望大家喜歡。
c語(yǔ)言程序設(shè)計(jì)的學(xué)習(xí)方法
1.在編寫(xiě)各類單片機(jī)功能程序時(shí),不要急于書(shū)寫(xiě),一定要先想出一個(gè)很好的結(jié)構(gòu)和方法,雖然你寫(xiě)出來(lái)的程序可以正常運(yùn)行,但是你是否想到了它的可維護(hù)性,可閱讀性等等一些很重要的因素呢?所以一定要先想出一個(gè)很好的架構(gòu)在來(lái)開(kāi)始編寫(xiě)。
2.c文件,和h文件設(shè)計(jì)的要求。C語(yǔ)言顯得非常的自由,但我們?cè)诠ぷ髦袨榱顺绦蜍浖姆N種原因,一定要規(guī)范自己的寫(xiě)法,這對(duì)自己和他人都是有利的。在單片機(jī)的程序中,我們應(yīng)該把一個(gè)模塊功能建立一個(gè)單獨(dú)的C文件,這一C文件中包含和該模塊功能全部相關(guān)的函數(shù)體,同樣把和該C文件相關(guān)的常量,表達(dá)式等等也單獨(dú)的建立一個(gè)h文件,最好是只讓它對(duì)應(yīng)的C文件引用,不要讓其它的C文件進(jìn)行引用,這樣很好的體現(xiàn)程序的模塊化和內(nèi)聚性。在對(duì)單片機(jī)的內(nèi)部寄存器進(jìn)行操作的程序,我們應(yīng)該單獨(dú)的建立一個(gè)文件,只允許MCU內(nèi)部的寄存器名出現(xiàn)在該文件中,你試想一個(gè),在你的所有文件中這這里出現(xiàn)一個(gè)寄存器名,那里出現(xiàn)一個(gè)寄存器名,是不是可讀性不好,沒(méi)有實(shí)現(xiàn)程序的模塊化呢?在程序過(guò)程中我們應(yīng)該把多次用到的變量和常量最好的定義為宏,這樣當(dāng)這些變量 ,常量要更改時(shí),就可以很方便的更改,不用大量的去尋找。在使用文件包含時(shí),一定要注意路徑的選擇,什么時(shí)候用<>," ",不用出現(xiàn)重復(fù)編譯的情況,有時(shí)重復(fù)編譯可能編譯器沒(méi)有報(bào)錯(cuò),但是這樣明顯不好。要學(xué)會(huì)很好的使用條件編譯語(yǔ)句,這對(duì)我們的程序很有用,在很多小型的操作系統(tǒng)中,都有硬件裁減的功能選擇,這正是利用了條件編譯,需要這一功能時(shí)我們就定義它,不需要時(shí)就不去定義,顯得很方便。
3.指針的妙用。C語(yǔ)言的特色就在于它的指針。很好的使用指針能讓我們的程序更加的有條理性,同樣它也是C語(yǔ)言中語(yǔ)法最難的一點(diǎn)了,所以在使用時(shí)一定要注意。具體的好處太多了,在這就不在多說(shuō)了,大家自己體會(huì)就能很好的明白了。
學(xué)習(xí)c語(yǔ)言程序設(shè)計(jì)的困惑
一、所謂的看懂聽(tīng)明白,只是很膚淺的語(yǔ)法知識(shí),而我們編寫(xiě)的程序或軟件是要根據(jù)要解決問(wèn)題的實(shí)際需要控制程序的流程,如果你沒(méi)有深刻地理解C語(yǔ)言的語(yǔ)句的執(zhí)行過(guò)程(或流程),你怎么會(huì)編寫(xiě)程序解決這些實(shí)際問(wèn)題呢?
二、用C語(yǔ)言編程解決實(shí)際問(wèn)題,所需要的不僅僅是C語(yǔ)言的編程知識(shí),還需要相關(guān)的專業(yè)知識(shí)。例如,如果你不知道長(zhǎng)方形的面積公式,即使C語(yǔ)言學(xué)得再好你也編不出求長(zhǎng)方形的面積的程序來(lái)。
三、C語(yǔ)言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,“紙上談兵”式的光學(xué)不練是學(xué)不好C語(yǔ)言的。例如,大家都看過(guò)精彩自行車雜技表演,假如,你從來(lái)沒(méi)有騎過(guò)自行車,光聽(tīng)教練講解相關(guān)的知識(shí)、規(guī)則、技巧,不要說(shuō)上臺(tái)表演、就是上路你恐怕都不行。
學(xué)習(xí)c語(yǔ)言程序設(shè)計(jì)困惑的解決方法
第一步、驗(yàn)證性練習(xí)
在這一步要求按照教材上的程序?qū)嵗M(jìn)行原樣輸入,運(yùn)行一下程序是否正確。在這一步基本掌握C語(yǔ)言編程軟件的使用方法(包括新建、打開(kāi)、保存、關(guān)閉C程序,熟練地輸入、編輯C程序;初步記憶新學(xué)章節(jié)的知識(shí)點(diǎn)、養(yǎng)成良好的C語(yǔ)言編程風(fēng)格)。 單擊此處查看【C語(yǔ)言的編程風(fēng)格】
使用《Turbo C/C++ for Windows 集成實(shí)驗(yàn)與學(xué)習(xí)環(huán)境》軟件可以很方便地看著軟件集成的《C語(yǔ)言入門教程》輸入練習(xí)其中的程序例題。具體使用方法參見(jiàn)軟件幫助部分。
初學(xué)者最容易犯的錯(cuò)誤是:
1、沒(méi)有區(qū)分開(kāi)教材上的數(shù)字1和字母l,字母o和數(shù)字0的區(qū)別,造成變量未定義的錯(cuò)誤。另一個(gè)易錯(cuò)點(diǎn)是將英文狀態(tài)下的逗號(hào),分號(hào);括號(hào)()雙引號(hào)""輸入出入成中文狀態(tài)下的逗號(hào),分號(hào);括號(hào)(),雙引號(hào)“”造成非法字符錯(cuò)誤。
2、C語(yǔ)言初學(xué)者易犯語(yǔ)法錯(cuò)誤:使用未定義的變量、標(biāo)示符(變量、常量、數(shù)組、函數(shù)等)不區(qū)分大小寫(xiě)、漏掉“;”、“{”與“}”、“(”與“)”不匹配、控制語(yǔ)句(選擇、分支、循環(huán))的格式不正確、調(diào)用庫(kù)函數(shù)卻沒(méi)有包含相應(yīng)的頭文件、調(diào)用未聲明的自定義函數(shù)、調(diào)用函數(shù)時(shí)實(shí)參與形參不匹配、數(shù)組的邊界超界等。
3、修改C語(yǔ)言語(yǔ)法錯(cuò)誤時(shí)要注意以下兩點(diǎn):
(1)、由于C語(yǔ)言語(yǔ)法比較自由、靈活,因此錯(cuò)誤信息定位不是特別精確。例如,當(dāng)提示第10行發(fā)生錯(cuò)誤時(shí),如果在第10行沒(méi)有發(fā)現(xiàn)錯(cuò)誤,從第10行開(kāi)始往前查找錯(cuò)誤并修改之。
(2)、一條語(yǔ)句錯(cuò)誤可能會(huì)產(chǎn)生若干條錯(cuò)誤信息只要修改了這條錯(cuò)誤,其他錯(cuò)誤會(huì)隨之消失。特別提示:一般情況下,第一條錯(cuò)誤信息最能反映錯(cuò)誤的位置和類型,所以調(diào)試程序時(shí)務(wù)必根據(jù)第一條錯(cuò)誤信息進(jìn)行修改,修改后,立即運(yùn)行程序,如果還有很多錯(cuò)誤,要一個(gè)一個(gè)地修改,即,每修改一處錯(cuò)誤要運(yùn)行一次程序。
第二步、照葫蘆畫(huà)瓢
在第一步輸入的C程序的基礎(chǔ)上進(jìn)行試驗(yàn)性的修改,運(yùn)行一下程序看一看程序結(jié)果發(fā)生了什么變化,分析結(jié)果變化的原因,加深新學(xué)知識(shí)點(diǎn)的理解。事實(shí)上這和第一步時(shí)同步進(jìn)行的,實(shí)現(xiàn)“輸入”加深知識(shí)的記憶,“修改”加深對(duì)知識(shí)的理解。記憶和理解是相輔相成的,相互促進(jìn)。
第三步、不看教材看是否能將前兩步的程序進(jìn)行正確地輸入并運(yùn)行。
在這一步要求不看教材,即使程序不能運(yùn)行,看能否將其改正,使其能正確運(yùn)行。目的是對(duì)前兩步的記憶、理解進(jìn)一步強(qiáng)化。
第四步、增強(qiáng)程序的調(diào)試能力
在《Turbo C/C++ for Windows 集成實(shí)驗(yàn)與學(xué)習(xí)環(huán)境》集成的教材中每章都有C語(yǔ)言初學(xué)者易犯的錯(cuò)誤,按照易出錯(cuò)的類型,將教材中的正確的程序改成錯(cuò)誤的程序,運(yùn)行一下程序,看出現(xiàn)的錯(cuò)誤信息提示,并記下錯(cuò)誤信息,再將程序改成正確的,運(yùn)行一下程序。這樣反復(fù)修改,就能夠?qū)W習(xí)C語(yǔ)言程序發(fā)生錯(cuò)誤的原因和修改錯(cuò)誤的能力。
注意:每次只改錯(cuò)一個(gè)地方,目的是顯示發(fā)生該錯(cuò)誤的真正原因,避免一次改動(dòng)多個(gè)地方,搞清發(fā)生錯(cuò)誤的真正原因,切記!
注意:上機(jī)調(diào)試程序時(shí)要帶一個(gè)記錄本,記下英文錯(cuò)誤提示信息和解決該錯(cuò)誤問(wèn)題的方法,積累程序調(diào)試經(jīng)驗(yàn),避免在編程犯同樣的錯(cuò)誤,切記!
第五步、研究典型的C語(yǔ)言程序,提高程序設(shè)計(jì)能力
經(jīng)過(guò)上述過(guò)程的學(xué)習(xí),我們已經(jīng)學(xué)會(huì)了C語(yǔ)言各種語(yǔ)句的流程(即計(jì)算機(jī)是如何執(zhí)行這些語(yǔ)句的過(guò)程),然后就可以研讀別人編寫(xiě)C語(yǔ)言經(jīng)典程序,看懂別人是如何解決問(wèn)題的,學(xué)習(xí)解決問(wèn)題的方法和程序設(shè)計(jì)技巧,提高自己的程序設(shè)計(jì)能力。
在軟件中有50多個(gè)典型的源程序,研究它的實(shí)現(xiàn)方法,提高自己的程序設(shè)計(jì)能力。
第六步、研究課程設(shè)計(jì)源成序,提高C語(yǔ)言程序設(shè)計(jì)的能力。
C語(yǔ)言課程設(shè)計(jì)的目的:是讓學(xué)生綜合利用所學(xué)的C語(yǔ)言知識(shí),解決一些接近實(shí)際問(wèn)題題目,提高程序設(shè)計(jì)和調(diào)試較大程序的能力,為進(jìn)一步進(jìn)行軟件開(kāi)發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。