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