版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TC語(yǔ)言的模塊化編程CONTENTS01模塊化編程思維e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507020304頭文件extern變量模塊化編程實(shí)例1.模塊化思維e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507C語(yǔ)言模塊化的編程思想當(dāng)程序代碼量很少時(shí),程序的所有函數(shù)都可以編寫(xiě)都在同一文件中程序代碼量很多時(shí),程序調(diào)試將會(huì)非常費(fèi)時(shí)、費(fèi)力1.模塊化思維e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507每一個(gè).h文件則是聲明該模塊,相當(dāng)于功能說(shuō)明書(shū)4每個(gè).c文件可以被稱(chēng)為一個(gè)模塊,每一個(gè)模塊都有其各自的功能31把一個(gè)項(xiàng)目分成很多模塊2一個(gè)程序工程包含多個(gè)源文件和頭文件(.c文件和.h文件)C語(yǔ)言模塊化的編程思想1.模塊化思維e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507接口接口提供訪(fǎng)問(wèn)一組例程的能力,又無(wú)需訪(fǎng)問(wèn)源碼,也無(wú)需理解內(nèi)部工作機(jī)制的細(xì)節(jié)在C語(yǔ)言中,接口就是函數(shù),通過(guò)接口調(diào)用實(shí)現(xiàn)大規(guī)模程序的級(jí)聯(lián)與組合編寫(xiě)程序模塊時(shí),很可能就需要利用到別人寫(xiě)好的模塊接口接口A(yíng)pplicationProgrammingInterface(API)是一些預(yù)先定義的函數(shù)1.模塊化思維e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA6315071復(fù)雜的項(xiàng)目可以由小組一起開(kāi)發(fā)在外部調(diào)用時(shí),只需要#include包含頭文件即可43源文件里面存放著定義的函數(shù),頭文件聲明這些函數(shù)寫(xiě)C語(yǔ)言代碼的時(shí)候,首先引入頭文件,就可以使用相對(duì)應(yīng)頭文件里的函數(shù)6項(xiàng)目開(kāi)發(fā)各個(gè)模塊的組合,形成了整個(gè)工程52每個(gè)人負(fù)責(zé)一部分功能的開(kāi)發(fā),形成一個(gè)源文件(.c)與頭文件(.h)2.頭文件e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507包括函數(shù)聲明和宏定義可被多個(gè)源文件引用共享使用#include語(yǔ)句可引用頭文件建議把所有的常量、宏和函數(shù)原型寫(xiě)在頭文件中頭文件是擴(kuò)展名為.h的文件2.頭文件e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507兩種引用頭文件的形式//這種形式用于引用系統(tǒng)頭文件,它在系統(tǒng)目錄的標(biāo)準(zhǔn)列表中搜索名為file的文件#include<file>//這種形式用于引用用戶(hù)頭文件,它在包含當(dāng)前文件的目錄中搜索名為file的文件#include"file"
2.頭文件e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507頭文件只能引用一次如果一個(gè)頭文件被引用兩次,編譯器會(huì)處理兩次頭文件的內(nèi)容,從而產(chǎn)生錯(cuò)誤解決方法有二//寫(xiě)在頭文件#ifndefHEADER_FILE//先測(cè)試HEADER_FILE是否被宏定義過(guò)#defineHEADER_FILE//沒(méi)有宏定義則宏定義HEADER_FILE并編譯下面的語(yǔ)句//頭文件內(nèi)容#endif//如果已經(jīng)定義了則編譯#endif后面的語(yǔ)句#ifndef_STDIO_H_#define_STDIO_H_#endif#pragmaonce//頭文件內(nèi)容3.extern變量e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507[存儲(chǔ)種類(lèi)]數(shù)據(jù)類(lèi)型[存儲(chǔ)器類(lèi)型]變量名表;
//變量定義extern聲明外部變量:外部變量(即全局變量)是在函數(shù)的外部定義的。作用域?yàn)閺淖兞康亩x處開(kāi)始,到本程序文件的結(jié)尾。如果整個(gè)工程由多個(gè)源文件組成,在一個(gè)源文件中想引用另外一個(gè)源文件中已經(jīng)定義的外部變量,同樣只需在引用變量的文件中用。有些單片機(jī)在變量定義時(shí)需要說(shuō)明變量存儲(chǔ)在內(nèi)存具體分區(qū)可以定義單個(gè)變量,也可同時(shí)定義同一類(lèi)型的多個(gè)變量,多個(gè)變量同時(shí)定義是要用“,”分割,一句變量定義的語(yǔ)句結(jié)束要使用“;”,可以為變量賦予初始值externinta;4.模塊化編程實(shí)例e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507/*******************LED模塊的頭文件led.h********************/#ifndef__LED_H__#define__LED_H__#include<STC8A8K64D4.h>#defineLED0P00#defineLED1P01#defineLEDON0#defineLEDOFF1voidLed_On(unsignedchar);//點(diǎn)亮一個(gè)LEDvoidLed_Off(unsignedchar);//熄滅一個(gè)LEDvoidLed_On_All(void); //點(diǎn)亮所有LEDvoidLed_Off_All(void); //熄滅所有LEDvoidLed_Blink(unsignedchar);//點(diǎn)亮一個(gè)LED后再熄滅該LED#endif/*******************LED模塊的源文件led.c********************/#include<led.h>unsignedintDelay_Time=10000;voidLed_On(unsignedchari){if(i==0)LED0=LEDON;elseif(i==1)LED1=LEDON; }voidLed_Blink(unsignedchari){unsignedinttime=Delay_Time,j;if(i==0)LED0=LEDON;elseif(i==1)LED1=LEDON;while(time!=0){time--;j=100;while(j!=0)j--;}LED0=LEDOFF;LED1=LEDOFF;time=Delay_Time;while(time!=0){time--;j=100;while(j!=0)j--;} }voidLed_Off(unsignedchari){if(i==0)LED0=LEDOFF;elseif(i==1)LED1=LEDOFF; }voidLed_On_All(){LED0=LEDON;LED1=LEDON;}voidLed_Off_All(){LED0=LEDOFF;LED1=LEDOFF;}4.模塊化編程實(shí)例e7d195523061f1c01ef2b70529884c179423570dbaad84926380ABC1F97BAEF0C8FC051856578EAB7874501A1FFE158C4981707381814BCC4D9A8E3554438DEE4FBCF5A5B4D2A8B0989AB57E8BAC65EB4C7ADE47CB0CAEE0501E4A226B4263409BF6D490A639D9B9ED09071C131A40B4F721A3CABF56865E37DAC04C7C9B262B2670CBBEB096AEE5D9F6218CBA631507/**************
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《營(yíng)業(yè)推廣策略》課件
- 中醫(yī)基礎(chǔ)理論習(xí)題及答案
- 【教育】浙江省高校教師高等教育法規(guī)基礎(chǔ)試題及答案
- 第一周幼兒園營(yíng)養(yǎng)食譜
- 施工單位技術(shù)負(fù)責(zé)人述職報(bào)告
- 高考新課標(biāo)語(yǔ)文模擬試卷系列之65
- 《特拉華州公司法》課件
- 交通運(yùn)輸行業(yè)安全意識(shí)培訓(xùn)總結(jié)
- 互聯(lián)網(wǎng)行業(yè)客服工作總結(jié)
- 物流行業(yè)安全工作總結(jié)
- 2024年中國(guó)陶瓷碗盆市場(chǎng)調(diào)查研究報(bào)告
- ISO 56001-2024《創(chuàng)新管理體系-要求》專(zhuān)業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之22:“8運(yùn)行-8.1運(yùn)行策劃和控制”(雷澤佳編制-2025B0)
- 2024-2030年中國(guó)硅肥行業(yè)規(guī)模分析及投資前景研究報(bào)告
- 電網(wǎng)行業(yè)工作匯報(bào)模板22
- 2024年度跨境電商平臺(tái)承包經(jīng)營(yíng)合同3篇
- 2025年上半年人民日?qǐng)?bào)社招聘應(yīng)屆高校畢業(yè)生85人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年一年級(jí)數(shù)學(xué)上冊(cè)期末樂(lè)考非紙筆測(cè)試題(二 )(蘇教版2024秋)
- 2024秋期國(guó)家開(kāi)放大學(xué)專(zhuān)科《高等數(shù)學(xué)基礎(chǔ)》一平臺(tái)在線(xiàn)形考(形考任務(wù)一至四)試題及答案
- HSE應(yīng)急預(yù)案(完整版)
- 《小學(xué)五年級(jí)期末家長(zhǎng)會(huì)》課件模板(五套)
- 2024-2024年江蘇省普通高中學(xué)業(yè)水平測(cè)試物理試卷(含答案)
評(píng)論
0/150
提交評(píng)論