作者:areak 程序設(shè)計是每一名電子工程師的必修課程,在數(shù)字電子迅速發(fā)展的今天,程序設(shè)計對于電子工程師來說,正變得越來越重要。 程序設(shè)計拼的其實就是經(jīng)驗,總是在走過許多彎路之后,才能吸取教訓(xùn),才能刻骨銘心,將人的想法轉(zhuǎn)換成機(jī)器語言,編程的目的是一樣的,但是同一個問題每個人的想法不一,雖然都是殊途同歸,但是執(zhí)行效率、穩(wěn)定性、可移植性、可讀性卻大相徑庭。我們無法做到最好,但是完全可以做得更好,如果你無法超越別人,那你可以不斷地嘗試超越自己,不經(jīng)意的某一天,你發(fā)現(xiàn)原來你已經(jīng)是大師了,原來進(jìn)步是如此的簡單。以下的幾點經(jīng)驗純屬個人的一點拙見,如贊同則納之,如不同,愿聞高見。 一、 為你的變量、函數(shù)起一個有意義的名字 名字很重要,不要用a,b,c,d,a1,a2之類的名字,這樣的變量名字讓人不知所云,云里霧里,幾乎不具備可讀性。變量或者函數(shù)的名字一定要有意義,當(dāng)然變量有不同的類型,最常用的來說,有全局變量、局部變量,可以在變量名前加上不同的字母,如cWK_WS_DispMD,vWK_WS_DispYear,這里面小寫字母c、v分別代表了不同的變量類型,在變量中可以多加一些下劃線,以使得名字易讀明了,盡量使用英文的縮寫,不要用漢語拼音,不要以英文不好為由,英文不好可以去網(wǎng)上查,只有你想不到的,沒有你查不到的,如果你拒絕改變,就是拒絕進(jìn)步。增強(qiáng)程序的可讀性,做好了這一點,你已經(jīng)向前走了一大步,堅持,你將大受脾益,獲益匪淺。 二、 注意代碼的格式 代碼的格式體現(xiàn)出一名程序員的素養(yǎng),正所謂“碼如其人”,這一點絕對不容忽視,可能有人說這是人盡皆知的準(zhǔn)則,但是我還是要在拿來強(qiáng)調(diào)一番,程序的編寫其實并不是難點,大部分的時間我們都花費在了程序的調(diào)試上,反復(fù)的推敲每一句代碼去尋找問題的所在,好的格式不僅可以增強(qiáng)美感,也會提高你解決問題的速度,增強(qiáng)程序的可讀性。這里提醒大家,在編寫程序前,有的編程環(huán)境中可以修改一個空格或者TAB鍵所占用的字節(jié)長度。 調(diào)整至你自己看著舒服就可以了,并且編程時要多使用TAB鍵,這樣更利于你調(diào)整格式,加快編程速度。 三、 添加盡可能詳盡的注釋 不要總覺得自己當(dāng)時記憶深刻,甚至刻骨銘心、終生難忘,時間總是會無情地證明你是錯的,為你的程序添加詳盡的注釋,比如變量的用途、函數(shù)的調(diào)用關(guān)系、參數(shù)說明、函數(shù)功能等等都要盡可能詳細(xì)地寫明,有時候即使是寫下來,過一段時間再回頭看時還要在琢磨一陣,若是不寫,后果可想而知,別人就更沒法讀你的程序了。 這是我為一個函數(shù)寫的注釋,當(dāng)然每個人都有自己的寫法,我一般這樣來寫的,僅供參考哈。 /*============================================================================= * * 函 數(shù) 名: CMD_Send() * * 參 數(shù): length_low 數(shù)據(jù)長度 * CMD_byte 命令字節(jié) * CMD_parameter 命令參數(shù) * *data 語音數(shù)據(jù) * 功能描述: * 發(fā)送一幀語音數(shù)據(jù) * * 返 回 值: 無 =============================================================================*/ 四、 做好底層的定義 這里的意思是與硬件相關(guān)的程序,為了后期更好地編程,先做一些必要的定義,比如 #define cWL_PIN_SDIO 0x04 #define SDIO_is_Out P1DIR |= cWL_PIN_SDIO 這樣以后用起來就十分的方便,就像說話一樣,使得程序十分易讀,當(dāng)然凡事過猶不及,也沒必要過多地定義,只對一些經(jīng)常使用的定義就好,也有的編程環(huán)境中,本身就已經(jīng)做了非常詳盡的定義,那么就省了你的事了,但這也未必是好事,因為你要花很多時間去看,去熟悉。 五、 合理劃分單元和函數(shù) 尤其在程序量比較大的時候,這一點就顯得尤為重要,劃分得好不好,對于后期編程影響極大。合理劃分單元說得通俗點就是把每一個功能單元放在一個單獨的文件中,這樣每一個文件中的程序量就不至于太長,需要被外部調(diào)用的函數(shù)全部在頭文件中引出,劃分函數(shù)也很重要,函數(shù)劃分得好,可以節(jié)省很多程序空間,增強(qiáng)代碼執(zhí)行效率。這樣做的好處是極大地增強(qiáng)了程序的可移植性,下次再用到這個功能時,只需要修改底層的IO口就可以了,這樣久而久之,當(dāng)你寫的單元足夠多的時候,寫程序就變得越來越輕松了。還有在文件的起始處最好也加一些功能說明,也就是注釋,例如: /*============================================================================= * 說 明: * 本單元實現(xiàn)了語音輸出‘宇音天下’的功能。 * 作 者: XXX 2011/3/3 * =============================================================================*/ 六、 反復(fù)修改,精益求精 無論我們?nèi)绾斡眯牡娜ゾ帉懗绦颍绦蛩坪蹩偸怯懈倪M(jìn)的余地,當(dāng)你發(fā)現(xiàn)一個可以改進(jìn)的地方,可能是一個好的算法,也可能僅僅是一個冗余的變量,也要不厭其煩地去重新改過,這樣日積月累,就可以不斷完善你自己的程序庫,因為當(dāng)程序庫足夠充足、足夠完善的時候,寫程序就幾乎是信手拈來了。 七、 總結(jié) 其實以上說的程序設(shè)計幾點經(jīng)驗,每一點都是在一個最根本的原則的指引之下,那就是增強(qiáng)程序的可讀性和可移植性。最后送大家一句話,與大家共勉“If you will,you can!!!”。 |