當(dāng)一個(gè)項(xiàng)目小組做一個(gè)相對(duì)比較復(fù)雜的工程時(shí),就需要小組成員分工合作,一起完成項(xiàng)目,意味著不再是某人獨(dú)自單干,而是要求小組成員各自負(fù)責(zé)一部分工程。比如你可能只是負(fù)責(zé)通訊或者顯示某一塊,這個(gè)時(shí)候,就應(yīng)該將自己的這一塊程序?qū)懗梢粋€(gè)模塊,單獨(dú)調(diào)試,留出接口供其它模塊調(diào)用。最后,小組成員都將自己負(fù)責(zé)的模塊寫(xiě)完并調(diào)試無(wú)誤后,由項(xiàng)目組長(zhǎng)進(jìn)行綜合調(diào)試,像這些場(chǎng)合就要求程序必須模塊化。模塊化的好處非常多,不僅僅是便于分工,它還有助于程序的調(diào)試,有利于程序結(jié)構(gòu)的劃分,還能增加程序的可讀性和可移植性。
說(shuō)明一:模塊即是一個(gè).c和一個(gè).h的結(jié)合,頭文件(.h)是對(duì)該模塊的聲明。 說(shuō)明二:某模塊提供給其他模塊調(diào)用的外部函數(shù)以及數(shù)據(jù)需在所對(duì)應(yīng)的.h文件中冠以extern關(guān)鍵字來(lái)聲明。 說(shuō)明三:模塊內(nèi)的函數(shù)和變量需在.c文件開(kāi)頭處冠以static關(guān)鍵字聲明。 說(shuō)明四:永遠(yuǎn)不要在.h文件中定義變量。 先解釋一下說(shuō)明中的兩個(gè)關(guān)鍵詞:定義和聲明。相信讀者都是學(xué)過(guò)C語(yǔ)言的,本應(yīng)該對(duì)這兩個(gè)詞理解的很透徹,可筆者在培訓(xùn)時(shí)發(fā)現(xiàn),好多人都搞不清楚,都是憑著感覺(jué)寫(xiě)的,高興了就用定義,不高興了就用聲明,這樣做當(dāng)然是不對(duì)的,換句話(huà)說(shuō)是錯(cuò)的。 強(qiáng)勢(shì)X入廣告:什么是定義和聲明? 所謂的定義就是(編譯器)創(chuàng)建一個(gè)對(duì)象,為這個(gè)對(duì)象分配一塊內(nèi)存并給它取上一個(gè)名字,這個(gè)名字就是我們經(jīng)常所說(shuō)的變量名或者對(duì)象名。但注意,這個(gè)名字一旦和這塊內(nèi)存匹配起來(lái)(可以想象是這個(gè)名字嫁給了這塊空間,沒(méi)有要彩禮?。鼈兙屯菜?,終生不離不棄,并且這塊內(nèi)存的位置也不能被改變。一個(gè)變量或?qū)ο笤谝欢ǖ膮^(qū)域內(nèi)(比如函數(shù)內(nèi))只能被定義一次,如果定義多次,編譯器會(huì)提示你重復(fù)定義同一個(gè)變量或?qū)ο蟆?/p> 什么是聲明?聲明確切的說(shuō)應(yīng)該有兩重含義: (1)告訴編譯器,這個(gè)名字已經(jīng)匹配到一塊內(nèi)存上了(伊人已嫁,吾將何去何從?何以解憂(yōu),唯有稀粥),下面的代碼用到變量或?qū)ο笫窃趧e的地方定義的。聲明可以出現(xiàn)多次。 (2)告訴編譯器,我這個(gè)名字我先預(yù)定了,別的地方再也不能用它來(lái)作為變量名或?qū)ο竺?/strong>比如你在圖書(shū)館自習(xí)室的某個(gè)座位上放了一本書(shū),表明這個(gè)座位已經(jīng)有人預(yù)訂,別人再也不允許使用這個(gè)座位。其實(shí)這個(gè)時(shí)候你本人并沒(méi)有坐在這個(gè)座位上。這種聲明最典型的例子就是函數(shù)參數(shù)的聲明,例如:void fun(int i, char c)。 那他們的區(qū)別也很清晰了。記住,定義聲明最重要的區(qū)別:定義創(chuàng)建了對(duì)象并為這個(gè)對(duì)象分配了內(nèi)存,聲明沒(méi)有分配內(nèi)存(一個(gè)抱伊人,一個(gè)喝稀粥,^_^)。 此文摘自劉平老師最新發(fā)表的新書(shū)《STC15單片機(jī)實(shí)戰(zhàn)指南(C語(yǔ)言版)》 《STC15單片機(jī)實(shí)戰(zhàn)指南(C語(yǔ)言版)》 本書(shū)從工程實(shí)踐角度出發(fā),整理了作者在單片機(jī)學(xué)習(xí)、工作實(shí)踐中的大量經(jīng)驗(yàn),旨在引領(lǐng)讀者如何熟練應(yīng)用STC公司最新的增強(qiáng)型1T單片機(jī)。本書(shū)共計(jì)20章,章節(jié)由淺入深,由點(diǎn)到面。首先從最基本的概念、開(kāi)發(fā)工具入手,牽手讀者走進(jìn)單片機(jī)的大門(mén);之后在帶領(lǐng)讀者深入淺出學(xué)習(xí)STC15單片機(jī)內(nèi)部資源(如定時(shí)器、中斷、串口)和經(jīng)典外圍外設(shè)(如LED、數(shù)碼管、按鍵、液晶、點(diǎn)陣、EEPROM、溫度傳感器、時(shí)鐘、紅外線(xiàn)解碼、收音機(jī)、觸摸按鍵、A/D、D/A)的同時(shí),還穿插了一些C語(yǔ)言和基礎(chǔ)電路;其后又?jǐn)U展了一些工程項(xiàng)目中常用的知識(shí)點(diǎn),如模塊化編程、PCB、實(shí)時(shí)操作系統(tǒng)、庫(kù)開(kāi)發(fā)等;最后以?xún)蓚€(gè)工程項(xiàng)目為例,手把手教大家如何DIY一個(gè)屬于自己的夢(mèng)想“玩具”和表白“神器”——多功能收音機(jī)和四軸飛行器,繼而聽(tīng)著收音機(jī)“飛”出單片機(jī)的大門(mén)。 |
|
來(lái)自: zsok > 《待分類(lèi)》