版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 預(yù)處理命令 第9章本 章 內(nèi) 容宏定義文件包含處理?xiàng)l件編譯9.1 宏定義基本概念預(yù)處理命令 由ANSI C統(tǒng)一規(guī)定,不是C語(yǔ)言本身的組成部分。預(yù)處理的實(shí)現(xiàn)宏定義文件包含條件編譯9.1 宏定義不帶參數(shù)的宏定義一般形式: #define 標(biāo)識(shí)符 字符串例如: #define PI 3.1415926說(shuō)明宏名一般用大寫字母表示,以便與變量名相區(qū)別。宏定義是用宏名代替一個(gè)字符串,只作簡(jiǎn)單的置換,不作正確性檢查。宏定義不是C語(yǔ)句,不必在行末加分號(hào)。#define命令應(yīng)放在程序中函數(shù)的外面,有效范圍為定義命令之后到本源文件結(jié)束??梢杂?undef命令終止宏定義的作用域。在進(jìn)行宏定義時(shí),可以引用已定義的宏
2、名,可以層層置換。(例9.2)對(duì)程序中用雙引號(hào)括起來(lái)的字符串內(nèi)的字符,即使與宏名相同,也不進(jìn)行置換。宏定義與定義變量的含義不同,不分配內(nèi)存空間。9.1 宏定義帶參數(shù)的宏定義一般形式 #define 宏名(參數(shù)表) 字符串例如: #define S(a, b) a*b area = S(2, 3);宏定義的展開:實(shí)參與虛參相對(duì)應(yīng),從左到右進(jìn)行置換。例9.3:如果有語(yǔ)句:area = S(a+b);分析程序正誤?#define PI 3.1415926#define S(r) PI*r*rmain() float a, area; a = 3.6; area = S(a); printf(%f,
3、%f, a, area); 9.1 宏定義說(shuō)明帶參的宏定義,在定義時(shí),在字符串中的形式參數(shù)外面加一個(gè)括號(hào)。在宏定義時(shí),在宏名與帶參數(shù)的括號(hào)之間不應(yīng)加空格,否則將空格以后的字符都作為替代字符串的一部分。帶參的宏定義與函數(shù)的不同函數(shù)調(diào)用時(shí),先求出實(shí)參表達(dá)式的值,然后代入形參。而使用帶參的宏只是進(jìn)行簡(jiǎn)單的字符替換。函數(shù)調(diào)用在程序運(yùn)行時(shí)處理,為形參分配臨時(shí)的內(nèi)存單元。而宏展開是在編譯時(shí)進(jìn)行,不分配內(nèi)存單元,不進(jìn)行值的傳遞處理,也沒有返回值的概念。函數(shù)中的實(shí)參和形參都有相應(yīng)的類型定義。而宏不存在類型問題,宏名無(wú)類型,它的參數(shù)也無(wú)類型。調(diào)用函數(shù)只可得到一個(gè)返回值,而用宏可以得到幾個(gè)結(jié)果。9.1 宏定義例
4、9.4:宏展開后源程序增長(zhǎng),而函數(shù)調(diào)用不使源程序變長(zhǎng)。宏替換不占運(yùn)行時(shí)間,只占編譯時(shí)間。而函數(shù)調(diào)用則占運(yùn)行時(shí)間。對(duì)一些簡(jiǎn)短的功能實(shí)現(xiàn),用宏和函數(shù)都可以。例9.5(略)#define PI 3.1415926#define CIRCLE(R, L, S) L=2*PI*R; S=PI*R*Rmain() float r, l; scanf(%f, &r); CIRCLE(r, l); printf(%6.2f, %6.2f, %6.2f, r, l, s); 9.2 文件包含處理文件包含一個(gè)源文件可以將另一個(gè)源文件的全部?jī)?nèi)容包含進(jìn)來(lái),稱為文件包含。命令形式 #include 文件名 或 #inc
5、lude (標(biāo)準(zhǔn)方式) file1.c file2.c file1.c編譯時(shí)兩個(gè)文件作為一個(gè)源程序進(jìn)行編譯,得到一個(gè)目標(biāo)文件。#includeABBA說(shuō)明:一個(gè)#include命令只能指定一個(gè)被包含文件。如果文件1包含文件2,而文件2中要用到文件3的內(nèi)容,則在文件1中有: #include file3.h #include file2.h文件包含可以嵌套。 file1.c file2.c file3.c兩種文件包含形式的區(qū)別(P196)尖括號(hào) 系統(tǒng)到存放C庫(kù)函數(shù)頭文件所在的目錄中尋找要包含的文件,稱為標(biāo)準(zhǔn)方式。雙撇號(hào) 系統(tǒng)先在用戶當(dāng)前目錄中尋找要包含的文件,若找不到,再按標(biāo)準(zhǔn)方式查找。若文件不
6、在當(dāng)前目錄中,雙撇號(hào)內(nèi)可給出文件路徑。9.2 文件包含處理#include file2.c#include file3.c9.3 條件編譯條件編譯指定編譯的條件,僅對(duì)部分內(nèi)容進(jìn)行編譯,稱為條件編譯。條件編譯命令的幾種形式:(1)#ifdef 標(biāo)識(shí)符程序段1#else程序段2#endif說(shuō)明:#else 部分可以省略。程序段可以是語(yǔ)句組也可以是命令行。例如:#define DEBUG.#ifdef DEBUG printf(x=%d, x);#else printf(y=%d, y);#endif(3)#if 表達(dá)式程序段1#else程序段2#endif(2)#ifndef 標(biāo)識(shí)符程序段1#else程序段2#endif9.3 條件編譯9.3 條件編譯#define LETTER 1main() char str20 = C Language, c; int i; i = 0; while(c=stri) !=0) i+; #if LETTER if(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度化妝品產(chǎn)品代言合同協(xié)議4篇
- 2025年度臨時(shí)餐飲場(chǎng)地租賃服務(wù)協(xié)議8篇
- 二零二五年度水電設(shè)施智能化改造合同3篇
- 二零二五版餐飲企業(yè)廚師招聘與人才輸送協(xié)議3篇
- 二零二四事業(yè)單位員工試用期人才引進(jìn)與培養(yǎng)合作協(xié)議3篇
- 2024石材荒料購(gòu)銷及石材產(chǎn)品安全檢測(cè)服務(wù)合同3篇
- 2024蔬菜種植與農(nóng)產(chǎn)品加工企業(yè)銷售合作協(xié)議范本3篇
- 2024進(jìn)出口食品貿(mào)易合同
- 二零二五版合同法擔(dān)保條款設(shè)計(jì)-企業(yè)風(fēng)險(xiǎn)控制策略3篇
- 二零二五年度在線教育平臺(tái)股權(quán)收購(gòu)合同3篇
- GB/T 37238-2018篡改(污損)文件鑒定技術(shù)規(guī)范
- 普通高中地理課程標(biāo)準(zhǔn)簡(jiǎn)介(湘教版)
- 河道治理工程監(jiān)理通知單、回復(fù)單范本
- 超分子化學(xué)簡(jiǎn)介課件
- 高二下學(xué)期英語(yǔ)閱讀提升練習(xí)(一)
- 易制爆化學(xué)品合法用途說(shuō)明
- 【PPT】壓力性損傷預(yù)防敷料選擇和剪裁技巧
- 大氣喜慶迎新元旦晚會(huì)PPT背景
- DB13(J)∕T 242-2019 鋼絲網(wǎng)架復(fù)合保溫板應(yīng)用技術(shù)規(guī)程
- 心電圖中的pan-tompkins算法介紹
- 羊絨性能對(duì)織物起球的影響
評(píng)論
0/150
提交評(píng)論