C編譯預(yù)處理與多文件工程程序課件

上傳人:嘀****l 文檔編號:253307715 上傳時(shí)間:2024-12-11 格式:PPT 頁數(shù):19 大小:587KB
收藏 版權(quán)申訴 舉報(bào) 下載
C編譯預(yù)處理與多文件工程程序課件_第1頁
第1頁 / 共19頁
C編譯預(yù)處理與多文件工程程序課件_第2頁
第2頁 / 共19頁
C編譯預(yù)處理與多文件工程程序課件_第3頁
第3頁 / 共19頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C編譯預(yù)處理與多文件工程程序課件》由會員分享,可在線閱讀,更多相關(guān)《C編譯預(yù)處理與多文件工程程序課件(19頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、*,計(jì)算機(jī)軟件教學(xué)中心,http:/ 編譯預(yù)處理,編譯預(yù)處理,(,Preprocessor,),編譯器根據(jù)源程序中的編譯預(yù)處理指令對源程序文本進(jìn)行相應(yīng)操作的過程,編譯預(yù)處理指令都以,“,#”,開頭,它不是,C,語言語句,結(jié)尾不帶“,;”,號,三種編譯預(yù)處理指令,文件包含,(,Including files,),宏定義,(,Macro Definition,),條件編譯,(,Conditional Compilation,),4,文件包含,頭文件,(,Header File,),主要的作用是保存程序的聲明,包括:功能函數(shù)原型、數(shù)據(jù)類型的聲明等,如:,stdio.h,、,math.h,、,stri

2、ng.h,等。,文件包含指令的一般格式為:,#include,到編譯系統(tǒng)指定的標(biāo)準(zhǔn)目錄(,include,)下去查找該頭文件,若沒有找到就報(bào)錯(cuò)。多用于包含,標(biāo)準(zhǔn)頭文件,。,#include,頭文件名,“,首先到當(dāng)前工作目錄中查找頭文件;若沒找到,再到查找編譯系統(tǒng)指定的標(biāo)準(zhǔn)目錄中查找。多用于包含,用戶自定義的頭文件,。,5,宏定義,宏定義,將一個(gè)標(biāo)識符定義為一個(gè)字符串。,在編譯預(yù)處理時(shí),源程序中的該標(biāo)識符均以指定的,字符串來代替,。,宏定義也稱為,宏替換,。,宏定義指令分為:,無參宏指令,帶參宏指令,6,宏定義,無參宏指令,#define ,例,9.1,無參宏指令應(yīng)用示例,7,#define P

3、I 3.14159,/*無參宏定義1,符號常量*/,#define ISPOSITIVE 0,/*無參宏定義2*/,#define FORMAT Area=%fn,/*無參宏定義3*/,#define ERRMSG Input error!n,/*無參宏定義4*/,思考題:若在本例宏定義命令的后面都加上“,;”,號,程序是否還能正確編譯?,宏定義,帶參宏指令,#define (),例,9.2,帶參宏指令應(yīng)用示例,8,#define SUB(a,b)a-b,/*帶參宏定義*/,c=SUB(a,b);,/*替換為:c=a-b;*/,c=SUB(3,1+2);,/*,替換為:,c=3-1+2;,結(jié)果

4、不為,0,*/,思考題:如何修改本例宏定義使得,SUB(3,1+2),的結(jié)果為,0,?,宏定義,取消宏定義指令,#undef ,例如:,#undef PI,表示取消標(biāo)識符,PI,的宏定義,9,條件編譯,條件編譯指令格式,1,:,#ifdef ,#else,#endif,例,9.3,條件編譯指令應(yīng)用示例,用于程序的調(diào)試信息的輸出,10,條件編譯,條件編譯指令格式,2,:,#ifndef ,#else,#endif,可以用來防止頭文件的重復(fù)包含,具體下面,9.2,節(jié)介紹,11,9.2,多文件工程程序,多文件工程程序,(,Project with Multiple,Source Files,),程序

5、代碼按一定的分類原則被劃分為若干個(gè)部分,也稱為模塊,(,Module,),優(yōu)勢:,使程序結(jié)構(gòu)更加清晰,便于程序的分工協(xié)作開發(fā),便于程序的維護(hù),12,多文件工程程序的組織結(jié)構(gòu),將不同的功能和數(shù)據(jù)結(jié)構(gòu)劃分到不同的模塊中,不同類型的程序放在不同的(,.c,)源文件中,將函數(shù)的定義和使用相分離,將函數(shù)的定義從程序其他代碼中分離出來,單獨(dú)存放,有利于函數(shù)的重用,將函數(shù)的聲明和實(shí)現(xiàn)相分離,將函數(shù)的原型聲明放在一個(gè)(,.h,)頭文件中,將函數(shù)的具體實(shí)現(xiàn)放在另一個(gè)(,.c,)源文件中,13,多文件工程程序的組織結(jié)構(gòu),例,9.4,設(shè)計(jì)一個(gè)多文件工程程序,其功能是計(jì)算圓和矩形的面積和周長。,在,VC+,環(huán)境下分析

6、程序結(jié)構(gòu),并運(yùn)行之。,14,注意:,main.c,中,#include“circle.h”,等使用了雙引號,注意:,circle.h等中使用了條件編譯指令,,防止,函數(shù)被重復(fù)聲明,外部變量與外部函數(shù),在一個(gè)程序文件中定義的變量或函數(shù)被其他程序文件所使用,外部變量,(,External Variable,),extern ;,外部函數(shù),(,External Function,),extern ;,15,外部變量與外部函數(shù),例,9.5,外部變量與外部函數(shù)示例,16,A.c,extern,void fb();,extern,void fc();,int x=0;,B.c,extern,int x;,

7、void fb(),C.c,extern,int x;,void fc(),思考題:若,B.c,文件中刪除外部變量聲明語句“,extern int x;”,程序是否還能正確編譯?,靜態(tài)全局變量與靜態(tài)函數(shù),限制所定義的變量或函數(shù)只能在本文件中使用,而其他文件不能訪問。,靜態(tài)全局變量,(,Static Global Variable,),static ;,靜態(tài)函數(shù),(,Static Function,),static ;,17,思考題:修改例,9.5,將,A.c,中變量,x,的定義改為,static int x=0;,將,B.c,中函數(shù),fb(),定義前加上,static,重新編譯程序,結(jié)果如何?,9.3 應(yīng)用舉例多文件結(jié)構(gòu)處理數(shù)組問題,例,9.6,設(shè)計(jì)一個(gè)多文件工程程序,實(shí)現(xiàn)對一維數(shù)組的輸入、輸出、統(tǒng)計(jì)、查找等。,在,VC+,環(huán)境下分析程序結(jié)構(gòu),并運(yùn)行之。,18,模塊化程序設(shè)計(jì)思想,(,Modular Programming,),:,自頂向下、,逐步分解、,分而治之,19,輸入理想的程序,輸出快樂的人生,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!