C++課件 第6章編譯預(yù)處理_第1頁
C++課件 第6章編譯預(yù)處理_第2頁
C++課件 第6章編譯預(yù)處理_第3頁
C++課件 第6章編譯預(yù)處理_第4頁
C++課件 第6章編譯預(yù)處理_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目目 錄錄F第第1章章 C+概述概述F第第2章章 數(shù)據(jù)類型、運算符和表達式數(shù)據(jù)類型、運算符和表達式F第第3章章 簡單的輸入簡單的輸入/輸出輸出F第第4章章 C+的流程控制的流程控制F第第5章章 函數(shù)函數(shù)F第第6章章 編譯預(yù)處理編譯預(yù)處理F第第7章章 數(shù)組數(shù)組F第第8章章 結(jié)構(gòu)體、共同體和枚舉類型結(jié)構(gòu)體、共同體和枚舉類型F第第9章章 指針和引用指針和引用F第第10章章 類和對象類和對象F第第11章章 類和對象的其他特性類和對象的其他特性F第第12章章 繼承和派生繼承和派生F第第13章章 多態(tài)性多態(tài)性F第第14章章 輸入輸入/輸出流輸出流F第第15章章 模板模板v第一部分第一部分 面向過程的程序設(shè)

2、計面向過程的程序設(shè)計v第二部分第二部分 面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟮某绦蛟O(shè)計第第6章章 編譯預(yù)處理編譯預(yù)處理本章要點本章要點v了解帶參的宏定義和不帶參的宏定義了解帶參的宏定義和不帶參的宏定義v了解文件包含及使用方法了解文件包含及使用方法v自學(xué)條件編譯在程序設(shè)計中的使用自學(xué)條件編譯在程序設(shè)計中的使用主要內(nèi)容主要內(nèi)容v概述概述v宏定義宏定義v文件包含文件包含v條件編譯條件編譯(自學(xué))(自學(xué))編譯預(yù)處理編譯預(yù)處理 編譯預(yù)處理:編譯預(yù)處理:編譯器在對源程序正式編譯之前,對源程編譯器在對源程序正式編譯之前,對源程序進行的序進行的文字上的文字上的處理工作。處理工作。預(yù)處理預(yù)處理1預(yù)處理預(yù)處理2編譯編譯 f

3、.cpp f .cpp f .cpp內(nèi)容內(nèi)容變化變化內(nèi)容內(nèi)容變化變化連接連接 f.obj f.exe“預(yù)處理預(yù)處理”命令行命令行以以“#”開頭開頭末尾不加末尾不加“;”可以放在程序的任何位置可以放在程序的任何位置編譯預(yù)處理編譯預(yù)處理三種預(yù)處理三種預(yù)處理宏定義宏定義文件包含文件包含條件編譯(自學(xué))條件編譯(自學(xué))不帶參數(shù)的宏定義不帶參數(shù)的宏定義v#define PI 3.1415926標(biāo)識符標(biāo)識符 字符串字符串不帶參數(shù)的宏定義例不帶參數(shù)的宏定義例#include /li0601.cpp 不帶參數(shù)的宏定義不帶參數(shù)的宏定義#define PI 3.1415926void main( )double

4、l,s,r,v;coutr;l=2.0*PI*r;s=PI*r*r;v=4.0/3*PI*r*r*r;cout周長為:周長為:ln面積為:面積為:sn體積為:體積為:vn;l=2.0*3.1415926*r;s= 3.1415926 *r*r;v=4.0/3* 3.1415926 *r*r*r;宏代換后宏代換后說明說明v一般用大寫字母表示宏名一般用大寫字母表示宏名v減少程序中的重復(fù)書寫,提高通用性減少程序中的重復(fù)書寫,提高通用性如:如:#define array_size 100int arrayarray_size;便于修改a只作簡單置換,不作任何計算,不作語法檢查只作簡單置換,不作任何計算

5、,不作語法檢查a不是不是C+語句,不在行末加語句,不在行末加“;”a有效范圍:有效范圍:定義命令之后到本源文件結(jié)束定義命令之后到本源文件結(jié)束a#undef終止宏定義的作用域終止宏定義的作用域例:例:#define PI 3.1415926main( )#undef PIf1( ).PI的有效范圍的有效范圍v雙引號中的字符,與宏名相同也不置換雙引號中的字符,與宏名相同也不置換說明說明v宏定義時,可引用已定義的宏名宏定義時,可引用已定義的宏名#include /li0602.cpp#define R 5.0#define PI 3.1415926#define L 2*PI*R#define S

6、PI*R*Rvoid main( )coutL=LnS=Sendl;不置換帶參數(shù)的宏定義帶參數(shù)的宏定義v格式格式:#define 宏名宏名(參數(shù)表參數(shù)表) 字符串字符串v例例 #define s(a,b) a*barea=s(2,3);帶參數(shù)的宏定義例帶參數(shù)的宏定義例#include /bc0601.cpp#define PI 3.1415926#define S(r) PI*r*rvoid main( ) float a,area; a=3.6; area=S(a); coutr=anarea=area(b)?(a):(b) )#define MAX4(a,b,c,d) MAX2( MAX2

7、(a,b),MAX2(c,d) )不允許遞歸定義不允許遞歸定義例:例: #define fac(n) n=1 ? 1 : n*fac(n-1) 文件包含文件包含作用:作用:讓編譯預(yù)處理器把另一個源文件嵌入(包含)讓編譯預(yù)處理器把另一個源文件嵌入(包含)到當(dāng)前源文件中的該指令處。到當(dāng)前源文件中的該指令處。 #include file2.hA B file1.cpp file2.h A B file1.cpp包含處理包含處理一般形式一般形式v文件包含命令格式如下:文件包含命令格式如下: #include 文件名文件名 或或 #include 區(qū)別:設(shè)用戶源程序在區(qū)別:設(shè)用戶源程序在文件夾文件夾 D

8、:VC 中,中, 系統(tǒng)規(guī)定的系統(tǒng)規(guī)定的標(biāo)準(zhǔn)頭文件在下述文件夾中(標(biāo)準(zhǔn)頭文件在下述文件夾中(標(biāo)準(zhǔn)包含路徑標(biāo)準(zhǔn)包含路徑) C:Program FilesMicrosoft Visual StudioVC98Include則:對則:對 編譯器編譯器先先在在 D:VC 文件夾中查找要包含的頭文件文件夾中查找要包含的頭文件 , 若找不到,若找不到,再再到到標(biāo)準(zhǔn)包含路徑標(biāo)準(zhǔn)包含路徑下查找該文件下查找該文件 , 找到后,將該頭文件插入到用戶源文件頭部。找到后,將該頭文件插入到用戶源文件頭部。 對對 編譯器編譯器直接直接到到標(biāo)準(zhǔn)包含路徑標(biāo)準(zhǔn)包含路徑下查找該文件下查找該文件 。C:Program FilesMi

9、crosoft Visual StudioVC98IncludeC:Program FilesMicrosoft Visual StudioVC98Lib若包含系統(tǒng)提供的頭文件,則用較好若包含自己寫的文件,則用較好包含處理的例子包含處理的例子int x=200, y=100;float x1=25.6, x2=28.9;file1.h#include file1.h#include void main(void) cout x t yn; cout x1 t x2n;file2.cppint x=200, y=100;float x1=25.6, x2=28.9;#include void m

10、ain(void) cout x t yn; cout x1 t x2n;file2.cpp包含處理后包含處理后 編譯器對該文件,編譯器對該文件,進行編譯連接。進行編譯連接。一條文件包含命令一條文件包含命令只能包含一個文件只能包含一個文件 條件編譯的幾種形式條件編譯的幾種形式v形式形式1 1 # #ifdefifdef 標(biāo)識符標(biāo)識符 程序段程序段1 1 #else else 程序段程序段22 # #endifendif可以沒有可以沒有當(dāng)標(biāo)識符已被定義過當(dāng)標(biāo)識符已被定義過(一般是用(一般是用# #definedefine定義),定義),則編譯程序段則編譯程序段1 1條件編譯的幾種形式條件編譯的幾

11、種形式v形式形式2 2 # #ifndefifndef 標(biāo)識符標(biāo)識符 程序段程序段1 1 # #else else 程序段程序段22 # #endifendif可以沒有可以沒有意義與形式1相反未定義未定義幾種形式幾種形式v形式形式3 3# #if if 表達式表達式 / /* *或或# #ifif(表達式)表達式)* */ /程序段程序段1 1#elseelse程序段程序段22# #endifendif例例#include #define LETTER 0void main( )char str20=C Language,c;int i=0;while (c=stri)!=0)i+;#if LETTERif (c=a& c=A&c=Z)c=c+32;#en

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論