版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
9.1概述9.2宏定義9.3文件包含9.4條件編譯9.1概述9.1.1預(yù)處理的工作方式作用:對(duì)源程序編譯之前,對(duì)#開頭的命令做一些預(yù)處理9.1.2預(yù)處理命令種類:宏定義#define文件包含#include條件編譯#if--#else--#endif等9.2宏定義如if(x==YES)printf(“correct!\n”);elseif(x==NO)printf(“error!\n”);展開后:if(x==1)printf(“correct!\n”);elseif(x==0)printf(“error!\n”);不帶參數(shù)宏定義一般形式:#define宏名宏體功能:用指定標(biāo)識(shí)符(宏名)代替字符序列(宏體)宏名中不允許有空格,而且必須遵循C變量命名規(guī)則。宏名一般用大寫字母。宏展開:預(yù)編譯時(shí),用宏體替換宏名---不作語(yǔ)法檢查如#defineYES1#defineNO0#definePI3.1415926#defineOUTprintf(“Hello,World”);定義位置:一般在程序開頭作用域:從定義命令到文件結(jié)束#undef可終止宏名作用域格式:
#undef宏名例#defineYES1main(){……..}#undefYES
#defineYES0max(){……..}宏定義可嵌套,不能遞歸例#defineMAXMAX+10(
)引號(hào)中的內(nèi)容與宏名相同不需置換例#definePI3.14159printf(“2*PI=%f\n”,PI*2);宏展開:printf(“2*PI=%f\n”,3.14159*2);宏定義中使用必要的括號(hào)()例#defineWIDTH80#defineLENGTH
WIDTH+40var=LENGTH*2;宏展開:var=80+40*2;(
)(
)例#defineWIDTH80#defineLENGTH
WIDTH+40var=LENGTH*2;宏展開:var=80+40*2;帶參數(shù)宏定義一般形式:#define宏名(參數(shù)表)宏體宏展開:形參用實(shí)參置換,其它字符保留宏體及各形參外一般應(yīng)加括號(hào)()例#defineS(a,b)a*b………..area=S(3,2);宏展開:area=3*2;例#definePOWER(x)x*xx=4;y=6;z=POWER(x+y);宏展開:z=x+y*x+y;一般寫成:#definePOWER(x)((x)*(x))宏展開:z=((x+y)*(x+y));#defineMAX(x,y)(x)>(y)?(x):(y)…….main(){inta,b,c,d,t;…….t=MAX(a+b,c+d);……}宏展開:t=(a+b)>(c+d)?(a+b):(c+d);【例9.2】編程,利用帶參數(shù)的宏完成比較兩個(gè)數(shù)的大小。9.3文件包含功能:一個(gè)源文件可將另一個(gè)源文件的內(nèi)容全部包含一般形式:#include“文件名”
或#include<文件名>#include“file2.c”file1.cfile2.cfile1.cfile2.cABA<>直接按標(biāo)準(zhǔn)目錄搜索
“
”
先在當(dāng)前目錄搜索,再搜索標(biāo)準(zhǔn)目錄文件包含可嵌套#include“file2.c”file1.cAfile3.cC#include“file3.c”file2.cBfile1.cAfile3.cfile2.c例文件包含舉例#include<stdio.h>#defineN8#include"fun.c"intmain(){ printf("%ld\n",fac(N));}/*fun.c*/longintfac(intn){ inti; longints=1; for(i=1;i<=n;i++) s*=i; returns;}9.4條件編譯功能:根據(jù)指定的標(biāo)識(shí)符是否被定義過(guò),確定在程序編譯階段編譯哪一段程序段。
形式1:#if
表達(dá)式
程序段1
#else
程序段2
#endif
形式2:#ifdef
標(biāo)識(shí)符
程序段1
#else
程序段2
#endif
形式3:#ifndef
標(biāo)識(shí)符
程序段1
#else
程序段2
#endif
例:在調(diào)試程序時(shí),常常希望輸出一些所需的信息,而在調(diào)試完成后不再輸出這些信息,可在源程序中插入以下的條件編譯段:
#ifdefDEBUGprintf(”x=%d,y=%d,z=%d\n”,x,y,z);#endif#defineLETTER
1/*將1改為0,以大寫輸出*/main(){charstr[20]="CLanguage",c;
inti;
i=0
while((c=str[i])!=′\0′){i++;
#ifLETTER
if(c>=′a′&&c<=′Z′)c=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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水電工程安裝承包合同
- 二零二五年度汽車貸款抵押物保管合同樣本2篇
- 二零二五年度文化產(chǎn)業(yè)園開發(fā)建設(shè)合同3篇
- 2025年度食品企業(yè)HACCP體系認(rèn)證與改進(jìn)服務(wù)合同3篇
- 二零二五年特色餐廳食材供應(yīng)鏈管理服務(wù)合同3篇
- 2024版版權(quán)質(zhì)押貸款合同3篇
- 二零二五年度附帶提前還款罰金的合法借款合同3篇
- 2024版影視經(jīng)紀(jì)中介協(xié)議樣本版B版
- 2024版外貿(mào)儀器合同范本
- 個(gè)人勞務(wù)合同簡(jiǎn)單范本
- 《無(wú)人機(jī)法律法規(guī)知識(shí)》課件-第1章 民用航空法概述
- 部編人教版六年級(jí)下冊(cè)語(yǔ)文1-6單元作文課件
- NB/T 11434.5-2023煤礦膏體充填第5部分:膠凝材料技術(shù)要求
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考物理試卷(5年真題+答案解析)
- 手術(shù)器械與敷料的傳遞
- 提高護(hù)士手衛(wèi)生執(zhí)行率PDCA案例匯報(bào)課件(32張)
- 日本人的色彩意識(shí)與自然觀
- 校園網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)規(guī)劃任務(wù)書
- 部編版5年級(jí)語(yǔ)文下冊(cè)第五單元學(xué)歷案
- 建造師建設(shè)工程項(xiàng)目管理二局培訓(xùn)精簡(jiǎn)版課件
- 電工(三級(jí))理論知識(shí)考核要素細(xì)目表
評(píng)論
0/150
提交評(píng)論