下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、8.10 內(nèi)部函數(shù)與外部函數(shù)函數(shù)本質(zhì)上是全局的,但可以限定函數(shù)能否被別的文件所引用。當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),語言根據(jù)函數(shù)能否被其它源文件中的函數(shù)調(diào)用,將函數(shù)分為內(nèi)部函數(shù)和外部函數(shù)。8.10.1 內(nèi)部函數(shù)如果在一個(gè)源文件中定義的函數(shù),只能被本文件中的函數(shù)調(diào)用,而不能被同一程序其它文件中的函數(shù)調(diào)用,這種函數(shù)稱為內(nèi)部函數(shù)。定義一個(gè)內(nèi)部函數(shù),只需在函數(shù)類型前再加一個(gè)“static”關(guān)鍵字即可,如下所示:static 函數(shù)類型 函數(shù)名(函數(shù)參數(shù)表) 關(guān)鍵字“static”,譯成中文就是“靜態(tài)的”,所以內(nèi)部函數(shù)又稱靜態(tài)函數(shù)。但此處“static”的含義不是指存儲(chǔ)方式,而是指對(duì)函數(shù)的作用域僅局限于本
2、文件。使用內(nèi)部函數(shù)的好處是:不同的人編寫不同的函數(shù)時(shí),不用擔(dān)心自己定義的函數(shù),是否會(huì)與其它文件中的函數(shù)同名,因?yàn)橥矝]有關(guān)系。8.10.2 外部函數(shù)外部函數(shù)的定義:在定義函數(shù)時(shí),如果沒有加關(guān)鍵字“static”,或冠以關(guān)鍵字“extern”,表示此函數(shù)是外部函數(shù):extern 函數(shù)類型 函數(shù)名(函數(shù)參數(shù)表) 調(diào)用外部函數(shù)時(shí),需要對(duì)其進(jìn)行說明:extern 函數(shù)類型 函數(shù)名(參數(shù)類型表),函數(shù)名2(參數(shù)類型表2);例8.22 外部函數(shù)應(yīng)用。(1)文件mainf.cmain() extern void input(),process(),output(); input(); process();
3、 output(); (2)文件subf1.cextern void input()/*定義外部函數(shù)*/ (3)文件subf2.cextern void process()/*定義外部函數(shù)*/ (4)文件subf3.cextern void output()/*定義外部函數(shù)*/ 例8.23 數(shù)組排序-簡(jiǎn)單選擇排序file1.cmain()extern void sort(int array ,int n); int a10,i; for(i=0;i10;i+)scanf(%d,&ai); sort(a,10); for(i=0;i10;i+) printf(%d ,ai); printf(n)
4、;file2.cvoid sort(int array,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(arrayjarrayk) k=j; if(k!=i) t=arrayi; arrayi=arrayk; arrayk=t; 8.11 多個(gè)源程序文件的編譯和連接 (1)一般過程編輯各源文件 創(chuàng)建Project(項(xiàng)目)文件 設(shè)置項(xiàng)目名稱 編譯、連接,運(yùn)行,查看結(jié)果。(2)創(chuàng)建Project(項(xiàng)目)文件用編輯源文件相同的方法,創(chuàng)建一個(gè)擴(kuò)展名為.PRJ的項(xiàng)目文件:該文件中僅包括將被編譯、連接的各源文件名,一行一個(gè),其擴(kuò)展
5、名.C可以缺?。晃募捻樞?,僅影響編譯的順序,與運(yùn)行無關(guān)。注意:如果有某個(gè)(些)源文件不在當(dāng)前目錄下,則應(yīng)在文件名前冠以路徑。 (3)設(shè)置項(xiàng)目名稱打開菜單,選取ProjectProject name,輸入項(xiàng)目文件名即可。(4)編譯、連接,運(yùn)行,查看結(jié)果與單個(gè)源文件相同。編譯產(chǎn)生的目標(biāo)文件,以及連接產(chǎn)生的可執(zhí)行文件,它們的主文件名,均與項(xiàng)目文件的主文件名相同。注意:當(dāng)前項(xiàng)目文件調(diào)試完畢后,應(yīng)選取ProjectClear project,將其項(xiàng)目名稱從“Project name”中清除(清除后為空)。否則,編譯、連接和運(yùn)行的,始終是該項(xiàng)目文件!(5)關(guān)于錯(cuò)誤跟蹤缺省時(shí),僅跟蹤當(dāng)前一個(gè)源程序文件。
6、如果希望自動(dòng)跟蹤項(xiàng)目中的所有源文件,則應(yīng)將OptionsEnvironmentMessage Tracking開關(guān)置為“All files ”:連續(xù)按回車鍵,直至“All files”出現(xiàn)為止。此時(shí),滾動(dòng)消息窗口中的錯(cuò)誤信息時(shí),系統(tǒng)會(huì)自動(dòng)加載相應(yīng)的源文件到編輯窗口中。也可關(guān)閉跟蹤(將“Message Tracking”置為“Off”)。此時(shí),只要定位于感興趣的錯(cuò)誤信息上,然后回車,系統(tǒng)也會(huì)自動(dòng)將相應(yīng)源文件加載到編輯窗口中。良好的源程序書寫風(fēng)格注釋必要的注釋,可有效地提高程序的可讀性,從而提高程序的可維護(hù)性。在語言源程序中,注釋可分為三種情況:(1) 在函數(shù)體內(nèi)對(duì)語句的注釋;(2) 在函數(shù)之前對(duì)
7、函數(shù)的注釋;(3) 在源程序文件開始處,對(duì)整個(gè)程序的總體說明。函數(shù)體內(nèi)的語句,是由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等三種基本結(jié)構(gòu)構(gòu)成的。在什么地方加以注釋的原則是:如果不加注釋,理解起來就會(huì)有困難,或者雖無困難、但浪費(fèi)時(shí)間。(1)順序結(jié)構(gòu)在每個(gè)順序程序段(由若干條語句構(gòu)成)之前,用注釋說明其功能。除很復(fù)雜的處理外,一般沒有必要每條語句都加以注釋。(2)選擇結(jié)構(gòu) 在C語言中,選擇結(jié)構(gòu)是由if語句和switch語句來實(shí)現(xiàn)的。一般地說,要在前面說明其作用,在每個(gè)分支條件語句行的后面,說明該分支的含義,如下所示: 1)if語句 /*(說明功能)*/ if(條件表達(dá)式)/*條件成立時(shí)的含義*/ else/*入口條件含義*/ 2)switch語句 /*(說明功能) */ switch(表達(dá)式) case 常量表達(dá)式1: /*該入口值的含義*/ 語句組; case 常量表達(dá)式n: /*該入口值的含義*/ 語句組; default: /*該入口值的含義*/ 語句組; 如果條件成立時(shí)(或入口值)的含義,已經(jīng)很明確了,也可不再加以注釋。小結(jié)1 函數(shù)概念:具有一定功能一定形式的程序單位。2 一般將輸入和輸出放
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年轎車短期租賃服務(wù)協(xié)議與車輛交付明細(xì)版
- 2025年度宗教場(chǎng)地租賃合同中的活動(dòng)安排與宗教儀式規(guī)范3篇
- 2024甲乙雙方關(guān)于砌體工程勞務(wù)合作的合同
- 2024年金蝶人力資源報(bào)表分析系統(tǒng)訂購(gòu)
- 2024年食品飲料銷售合同英文規(guī)范文本3篇
- 2024年適用:有機(jī)農(nóng)產(chǎn)品生產(chǎn)與銷售合同
- 2024許娣與配偶離婚協(xié)議書及財(cái)產(chǎn)分割協(xié)議書2篇
- 2024年股東撤資協(xié)議:股權(quán)份額轉(zhuǎn)讓合同
- 2024年生態(tài)環(huán)境保護(hù)與修復(fù)項(xiàng)目采購(gòu)合同3篇
- 北京市自然科學(xué)基金資助項(xiàng)目結(jié)題報(bào)告【模板】
- SL176-2007 水利水電工程施工質(zhì)量檢驗(yàn)與評(píng)定規(guī)程
- 弱電施工設(shè)備表
- 腦卒中后的認(rèn)知功能障礙
- 家長(zhǎng)會(huì)課件:高三(13)班家長(zhǎng)會(huì)課件
- 推拿治療小兒食積腹痛技術(shù)
- 你比劃我猜搞笑題目你說我猜題目大全
- 成品可靠性測(cè)試計(jì)劃
- 八年級(jí)上冊(cè)數(shù)學(xué)復(fù)習(xí)計(jì)劃3篇
- 私人抵押借款合同
- 放射治療技術(shù)-常用放射治療方法-課件
- 曲阜師范大學(xué)畢業(yè)論文答辯通用ppt模板
評(píng)論
0/150
提交評(píng)論