版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第1,9章編譯預(yù)處理,第2,角色:在編譯源程序之前進(jìn)行某些處理,生成擴(kuò)展c源程序的種類:宏定義#define文件,#include條件編譯#if#else#endif格式特征define宏名宏功能:將字符串(宏體)替換為指定標(biāo)識(shí)符(宏名),宏展開:預(yù)編譯時(shí),將宏體替換為宏名-不進(jìn)行語法檢查,宏體默認(rèn)為定義了宏體還是取消了宏體的定義位置: 范圍:從定義命令到文件末尾的#undef可退出宏名范圍格式: #undef宏名,宏定義可嵌套、不可遞歸,例如#define MAX MAX 10 (),不能使用引號(hào)中的宏名,例如4,例如9.1 # defef 打印機(jī)(輸入射線3360 ); 掃描(% f,l=
2、2.0*3.1415926 *r; s=3.1415926*r*r; v=3.0/4*3.1415926*r*r*r。 5、#定義器3.0 #定義pi3. 1415926 #定義l2* pi * r #定義pi * r *主打印機(jī)(l=% ),處理結(jié)果#定義器3.0 #定義pi3. 1415926 #定義中的組合圖層性質(zhì)變更選項(xiàng)。 在示例9.2中,可以引用預(yù)定義的宏名稱,即按層次替換。6、一般形式: #define宏名(殘奧儀表)宏體,例如#define S (r) PI*r*r相當(dāng)于定義了無殘奧儀表宏s,字符串“(r) PI*r*r宏展開: area=3 * 2; 宏名稱和括號(hào)之間不能加空格
3、。 定義功率(x ) x * x=4; y=6; z=功率(x y ); 宏展開: z=x y*x y; 一般來說,標(biāo)記為#定義功率(x ) (x ) * (x ) )宏展開: z=(x y)*(x y ) )。 顯而易見,x*x和(x)*(x ) )宏展開之后將被區(qū)分,并且殘奧節(jié)器宏定義、7、#define MAX(x,y ) (。 (x ) : (y ) .主,b,c,d,t。 t=最大(ab,c d ); 宏觀展開: t=(a b)(c d )? (a b):(c d ) :英特爾最大、英特爾返回(xy )? x:y ); 主()分別為a、b、c、d、t; t=最大(ab,c d );
4、例2求個(gè)數(shù)中的最大數(shù)。 分別用宏定義和函數(shù)實(shí)現(xiàn)。 8、區(qū)分帶殘奧儀表的宏和函數(shù)、進(jìn)行編譯時(shí)處理、程序執(zhí)行時(shí)處理、沒有殘奧儀表類型的問題,定義實(shí)際殘奧儀表、波形殘奧儀表類型,分配存儲(chǔ)器來求出實(shí)際殘奧儀表值,并代入波形殘奧儀表,進(jìn)行不變的調(diào)用和門分配時(shí)間#include“文件名”或#include,處理步驟:在預(yù)編譯時(shí),替換為包含該預(yù)處理命令的文件的內(nèi)容,將“包含”后的文件作為源文件進(jìn)行編譯,直接重新檢索標(biāo)準(zhǔn)目錄文件名中包含文件的源文件(*.c )頭文件(*.h )、宏定義數(shù)據(jù)結(jié)構(gòu)定義函數(shù)的說明等文件可嵌套,其中包含文件內(nèi)容、c、11、的文件在d盤的abc文件夾中為*/# define sqr (
5、x ) (x ) * (x ) ) # # 打印機(jī)(編號(hào)為exp2t exp3t exp4n ) :打印機(jī)(編號(hào)為t- t- n )。 for(n=1; n=最大功率; 打印機(jī),打印機(jī),打印機(jī),打印機(jī)。 中的組合圖層性質(zhì)變更選項(xiàng)。 示例: 12、/* ch9_5. c */#包括/*功率。 此文件位于d光盤的abc文件夾中,名為*/#definesqr(x )。 打印機(jī)(編號(hào)為exp2t exp3t exp4n ) :打印機(jī)(編號(hào)為t- t- n )。 for(n=1; n=最大功率; 打印機(jī),打印機(jī),打印機(jī),打印機(jī)。 替換的結(jié)果是,13,例8.22有一個(gè)字符串,里面有多個(gè)字符,現(xiàn)在輸入一個(gè)字
6、符,要求程序從該字符串中刪除該字符。 用外部函數(shù)實(shí)現(xiàn)。定義14,文件2 c (文件2 ) #包括輸入字符串(char str 80 )/*外部函數(shù)輸入字符串*/gets (str ) /字符串str*/,15,文件3 c (文件3 )/*文件3 c (文件3 ) i=j=0; 超時(shí)空要塞! (0)國際貨幣基金組織! strj=stri; I; j; 艾露絲; strj=0; 定義16、文件4 c打印_字符串(char str )/*外部函數(shù)打印-字符串* /打印(% s,str )。 17、文件1 c (文件1 ) #包括主機(jī)()擴(kuò)展名字符串(char str 80 )。 extern del
7、ete_string(char str,char ch ):extern print _ string (char str ):/*上述三行聲明了在此函數(shù)調(diào)用的其他文件中定義的三個(gè)函數(shù)*/char c char str 80; 企業(yè)字符串(str ); 掃描(% c,刪除字符串(str,c ); 打印字符串(str ); 使用abcdefgc (輸入str) c (輸入要?jiǎng)h除的字符) abdefg (輸出刪除了指定字符的字符串)、18、文件中包含的方法,將文件file1.c修改為: # include extern delete _ string 卡爾斯特80; 企業(yè)字符串(str ); 掃描
8、(% c,刪除字符串(str,c ); 打印字符串(str );19、9.3條件編譯一樣,源程序中的所有行都參與編譯。 但是,您可能希望在滿足某些條件時(shí)才編譯某些內(nèi)容,也就是說,您可能希望為某些內(nèi)容指定編譯條件。 這就是“條件編譯”。 如果定義了角色:標(biāo)識(shí)符,則編譯段1,否則編譯段2。 (1) #ifdef標(biāo)識(shí)符段1 #else段2 #endif,條件編譯指令格式有三種形式:20,該條件編譯對(duì)于增強(qiáng)c源程序的通用性是有用的。 c源程序在不同的計(jì)算機(jī)系統(tǒng)上執(zhí)行,當(dāng)不同的計(jì)算機(jī)不同(例如,一些設(shè)備在16位(2字節(jié))處存儲(chǔ)整數(shù),一些設(shè)備在32位處存儲(chǔ)整數(shù))時(shí),需要對(duì)源程序進(jìn)行必要的修改,這會(huì)降低程序
9、的通用性。 可以通過上述條件編譯進(jìn)行處理. #define COMPUTER-A 0,無需更改源程序即可在不同類型的計(jì)算機(jī)系統(tǒng)上使用。 # ifdef計(jì)算機(jī)- a # define integer -大小為16 # else # define integer -大小為32 # endif,# define計(jì)算機(jī)。 在源程序中,可以使用# ifdef調(diào)試打印機(jī)(y=%D、y=%D、Z=%Dn、x、y、z ); 在#endif調(diào)試階段,如果#define DEBUG程序在程序之前運(yùn)行,則會(huì)輸出x、y和z值以便在調(diào)試時(shí)進(jìn)行分析。 調(diào)試完成后,只需刪除該define命令行,而無需逐個(gè)刪除程序中的輸出語
10、句。22、#ifndef標(biāo)識(shí)符段1 #else段2 #endif只是第一行與第一個(gè)格式不同。 將“ifdef”變更為“ifndef”。 如果沒有定義標(biāo)識(shí)符,則編譯段1,如果沒有定義標(biāo)識(shí)符,則編譯段2。 這種形式與第一種形式的作用相反。 這兩種形式的用法大致相同,根據(jù)需要選擇其中一種,便利性不同。 該、(2)、23和#if格式的段1 #else段2 #endif操作:如果指定的格式的值為真(除非0 ),則編譯段1,并且否則編譯段2。 能夠預(yù)先賦予一定的條件,使得程序能夠在不同的條件下執(zhí)行不同的功能。 輸入一行(3)、24、示例9.7字母字符,并根據(jù)需要設(shè)置條件編譯,使字母可以全部更改為大寫輸出或全部更改為小寫輸出。25、#定義級(jí)別1主() char str 20=c語言,c 英特爾; I=0小時(shí)!=0) i; #if LETTER /*條件編譯*/if(C=a,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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《JBT 14542-2024 無刷雙通道旋轉(zhuǎn)變壓器技術(shù)規(guī)范》專題研究報(bào)告
- 檢驗(yàn)科生物安全防護(hù)管理制度
- 環(huán)境執(zhí)法科室年度環(huán)保查處工作總結(jié)
- 2024年福貢縣招教考試備考題庫帶答案解析(奪冠)
- 2025年欽州幼兒師范高等??茖W(xué)校馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- 2025年江西電力職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試模擬測(cè)試卷帶答案解析
- 2025年寧夏醫(yī)科大學(xué)馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2026年大連職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性考試題庫附答案解析
- 2025年貴州食品工程職業(yè)學(xué)院單招綜合素質(zhì)考試題庫附答案解析
- 2025年洛川縣招教考試備考題庫帶答案解析(必刷)
- 化妝合同模板 簡易模板
- 深溝球軸承尺寸規(guī)格對(duì)照表
- 古樹移植施工方案
- 五年級(jí)上冊(cè)道德與法治第10課-傳統(tǒng)美德-源遠(yuǎn)流長-教學(xué)反思
- 《看圖找關(guān)系》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年六年級(jí)上冊(cè)數(shù)學(xué)北師大版
- DZ∕T 0374-2021 綠色地質(zhì)勘查工作規(guī)范(正式版)
- 《浙江省安裝工程預(yù)算定額》(2010版)
- 心理與教育測(cè)量課件
- 化工企業(yè)工藝報(bào)警培訓(xùn)課件
- 2024年全年日歷表帶農(nóng)歷(A4可編輯可直接打印)預(yù)留備注位置 精心整理
- 長沙市財(cái)政評(píng)審中心 2023年第一期材料價(jià)格手冊(cè)簽章版
評(píng)論
0/150
提交評(píng)論