




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一個(gè)較大的程序開發(fā)過程:為了便于規(guī)劃、組織、編程和調(diào)試,一般的做法是把一個(gè)大的程序劃分為若干個(gè)程序模塊(即程序文件),每一個(gè)模塊實(shí)現(xiàn)一部分功能。不同的程序模塊可以由不同的人來完成。在程序進(jìn)行編譯時(shí),以程序模塊為編譯單位,即分別對(duì)每一個(gè)編譯單位進(jìn)行編譯。如果發(fā)現(xiàn)錯(cuò)誤,可以在本程序模塊范圍內(nèi)查錯(cuò)并改正。在分別通過編譯后,才進(jìn)行連接,把各模塊的目標(biāo)文件以及系統(tǒng)文件連接在一起形成可執(zhí)行文件。,第4章 函數(shù)與預(yù)處理4.1 概述,(1)無論把一個(gè)程序劃分為多少個(gè)程序模塊,只能有一個(gè)main函數(shù)。程序總是從main函數(shù)開始執(zhí)行的。 (2)在程序運(yùn)行過程中,由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。 (3
2、)一個(gè)C程序是由若干個(gè)函數(shù)組成的,C語言被認(rèn)為是面向函數(shù)的語言。 (4)C+面向過程的程序設(shè)計(jì)沿用了C語言使用函數(shù)的方法。在C+面向?qū)ο蟮某绦蛟O(shè)計(jì)中,主函數(shù)以外的函數(shù)大多是被封裝在類中的。主函數(shù)或其他函數(shù)可以通過類對(duì)象調(diào)用類中的函數(shù)。因此,讀者必須掌握函數(shù)的概念以及學(xué)會(huì)設(shè)計(jì)和使用函數(shù)。,程序的組織形式: 在實(shí)際應(yīng)用的程序中,主函數(shù)寫得很簡單,它的作用就是調(diào)用各個(gè)函數(shù),程序各部分的功能全部都是由各函數(shù)實(shí)現(xiàn)的。主函數(shù)相當(dāng)于總調(diào)度,調(diào)動(dòng)各函數(shù)依次實(shí)現(xiàn)各項(xiàng)功能。 開發(fā)商和軟件開發(fā)人員將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫中供公共選用。程序開發(fā)人員要善于利用庫函數(shù),以減少重復(fù)編寫程序段的工作量。,從
3、用戶使用的角度看,函數(shù)有兩種: (1) 系統(tǒng)函數(shù),即庫函數(shù)。這是由編譯系統(tǒng)提供的,用戶不必自己定義這些函數(shù),可以直接使用它們。 (2) 用戶自己定義的函數(shù)。用以解決用戶的專門需要。 從函數(shù)的形式看,函數(shù)分兩類: (1) 無參函數(shù)。調(diào)用函數(shù)時(shí)不必給出參數(shù)。 (2) 有參函數(shù)。在調(diào)用函數(shù)時(shí),要給出參數(shù)。在主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞。,在調(diào)用函數(shù)時(shí),大多數(shù)情況下,函數(shù)是帶參數(shù)的。主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞關(guān)系。前面已提到:在定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量名稱為形式參數(shù)(formal parameter,簡稱形參),在主調(diào)函數(shù)中調(diào)用一個(gè)函數(shù)時(shí),函數(shù)名后面括號(hào)中的參數(shù)(可以是一個(gè)表達(dá)式
4、)稱為實(shí)際參數(shù)(actual parameter,簡稱實(shí)參)。,4.3 函數(shù)參數(shù)和函數(shù)的值 4.3.1 形式參數(shù)和實(shí)際參數(shù),例4.2 調(diào)用函數(shù)時(shí)的數(shù)據(jù)傳遞。 #include using namespace std; int max(int x,int y) /定義有參函數(shù)max int z; z=xy?x:y; return(z); int main( ) int a,b,c; coutab; c=max(a,b); /調(diào)用max函數(shù),給定實(shí)參為a,b。函數(shù)值賦給c coutmax=cendl; return 0; ,運(yùn)行情況如下: please enter two integer numb
5、ers:2 3 max=3 圖4.2,有關(guān)形參與實(shí)參的說明: (1) 在定義函數(shù)時(shí)指定的形參,在未出現(xiàn)函數(shù)調(diào)用時(shí),它們并不占內(nèi)存中的存儲(chǔ)單元,因此稱它們是形式參數(shù)或虛擬參數(shù),表示它們并不是實(shí)際存在的數(shù)據(jù),只有在發(fā)生函數(shù)調(diào)用時(shí),函數(shù)max中的形參才被分配內(nèi)存單元,以便接收從實(shí)參傳來的數(shù)據(jù)。在調(diào)用結(jié)束后,形參所占的內(nèi)存單元也被釋放。 (2) 實(shí)參可以是常量、變量或表達(dá)式,如max(3, a+b);但要求a和b有確定的值。以便在調(diào)用函數(shù)時(shí)將實(shí)參的值賦給形參。 (3) 在定義函數(shù)時(shí),必須在函數(shù)首部指定形參的類型(見例4.2程序第3行)。,(4) 實(shí)參與形參的類型應(yīng)相同或賦值兼容。 (5) 實(shí)參變量對(duì)形
6、參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在調(diào)用函數(shù)時(shí),編譯系統(tǒng)臨時(shí)給形參分配存儲(chǔ)單元。請(qǐng)注意: 實(shí)參單元與形參單元是不同的單元。圖4.3表示將實(shí)參和的值2和3傳遞給對(duì)應(yīng)的形參和。,圖4.3 圖4.4 調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。,(1) 函數(shù)的返回值是通過函數(shù)中的return語句獲得的。return語句將被調(diào)用函數(shù)中的一個(gè)確定值帶回主調(diào)函數(shù)中去。 return語句后面的括號(hào)可以要,也可以不要。return后面的值可以是一個(gè)表達(dá)式。 (2) 函數(shù)值的類型。既然函數(shù)有返回值,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類型。 (3) 如果函數(shù)
7、值的類型和return語句中表達(dá)式的值不一致,則以函數(shù)類型為準(zhǔn),即函數(shù)類型決定返回值的類型。對(duì)數(shù)值型數(shù)據(jù),可以自動(dòng)進(jìn)行類型轉(zhuǎn)換。,4.3.2 函數(shù)的返回值,(1) 首先被調(diào)用的函數(shù)必須是已經(jīng)存在的函數(shù)。 (2) 如果使用庫函數(shù),一般還應(yīng)該在本文件開頭用include命令將有關(guān)頭文件“包含”到本文件中來。 (3) 如果使用用戶自己定義的函數(shù),而該函數(shù)與調(diào)用它的函數(shù)(即主調(diào)函數(shù))在同一個(gè)程序單位中,且位置在主調(diào)函數(shù)之后,則必須在調(diào)用此函數(shù)之前對(duì)被調(diào)用的函數(shù)作聲明。 所謂函數(shù)聲明(declare),就是在函數(shù)尚在未定義的情況下,事先將該函數(shù)的有關(guān)信息通知編譯系統(tǒng),以便使編譯能正常進(jìn)行。,4.4 函數(shù)
8、的調(diào)用,例4.3 對(duì)被調(diào)用的函數(shù)作聲明。 #include using namespace std; int main( ) float add(float x,float y); /對(duì)add函數(shù)作聲明 float a,b,c; coutab; c=add(a,b); coutsum=cendl; return 0; float add(float x,float y) /定義add函數(shù) float z; z=x+y; return (z); ,運(yùn)行情況如下: please enter a,b:123.68 456.45 sum=580.13,調(diào)用函數(shù)時(shí)需要一定的時(shí)間和空間的開銷。圖4.5表示
9、函數(shù)調(diào)用的過程: 圖4.5,*4.5 內(nèi)置函數(shù),C+提供一種提高效率的方法,即在編譯時(shí)將所調(diào)用函數(shù)的代碼直接嵌入到主調(diào)函數(shù)中,而不是將流程轉(zhuǎn)出去。這種嵌入到主調(diào)函數(shù)中的函數(shù)稱為內(nèi)置函數(shù)(inline function),又稱內(nèi)嵌函數(shù)。在有些書中把它譯成內(nèi)聯(lián)函數(shù)。 指定內(nèi)置函數(shù)的方法很簡單,只需在函數(shù)首行的左端加一個(gè)關(guān)鍵字inline即可。,例4.4 函數(shù)指定為內(nèi)置函數(shù)。 #include using namespace std; inline int max(int,int, int); /聲明函數(shù),注意左端有inline int main( ) int i=10,j=20,k=30,m; m
10、=max(i,j,k); couta) a=b; /求a,b,c中的最大者 if(ca) a=c; return a; ,由于在定義函數(shù)時(shí)指定它為內(nèi)置函數(shù),因此編譯系統(tǒng)在遇到函數(shù)調(diào)用“max(i,j,k)”時(shí),就用max函數(shù)體的代碼代替“max(i,j,k)”,同時(shí)將實(shí)參代替形參。這樣,程序第6行 “m=max(i,j,k);”就被置換成 if (ji) i=j; if(ki) i=k; m=i; 注意使用條件: 使用內(nèi)置函數(shù)可以節(jié)省運(yùn)行時(shí)間,但卻增加了目標(biāo)程序的長度。因此一般只將規(guī)模很小(一般為5個(gè)語句以下)而使用頻繁的函數(shù)(如定時(shí)采集數(shù)據(jù)的函數(shù))聲明為內(nèi)置函數(shù)。,內(nèi)置函數(shù)中不能包括復(fù)雜的控
11、制語句,如循環(huán)語句和switch語句。 歸納起來,只有那些規(guī)模較小而又被頻繁調(diào)用的簡單函數(shù),才適合于聲明為inline函數(shù)。,在編程時(shí),有時(shí)我們要實(shí)現(xiàn)的是同一類的功能,只是有些細(xì)節(jié)不同。 int max1(int a,int b, int c); /求3個(gè)整數(shù)中的最大者 double max2(double a,double b,double c); /求3個(gè)雙精度數(shù)中最大者 long max3(long a,long b,long c); /求3個(gè)長整數(shù)中的最大者 C+允許用同一函數(shù)名定義多個(gè)函數(shù),這些函數(shù)的參數(shù)個(gè)數(shù)和參數(shù)類型不同。這就是函數(shù)的重載(function overloading)
12、。即對(duì)一個(gè)函數(shù)名重新賦予它新的含義,使一個(gè)函數(shù)名可以多用。,*4.6 函數(shù)的重載,對(duì)上面求最大數(shù)的問題可以編寫如下的C+程序。 例4.5 求3個(gè)數(shù)中最大的數(shù)(分別考慮整數(shù)、雙精度數(shù)、長整數(shù)的情況)。 #include using namespace std; int main( ) int max(int a,int b,int c); /函數(shù)聲明 double max(double a,double b,double c); /函數(shù)聲明 long max(long a,long b,long c); /函數(shù)聲明 int i1,i2,i3,i; cini1i2i3; /輸入3個(gè)整數(shù) i=max
13、(i1,i2,i3); /求3個(gè)整數(shù)中的最大者 coutd1d2d3; /輸入3個(gè)雙精度數(shù) d=max(d1,d2,d3); /求3個(gè)雙精度數(shù)中的最大者 coutg1g2g3; /輸入3個(gè)長整數(shù),g=max(g1,g2,g3); /求3個(gè)長整數(shù)中的最大者 couta) a=b; if(ca) a=c; return a; double max(double a,double b,double c) /定義求3個(gè)雙精度數(shù)中的最大者的函數(shù) if(ba) a=b; if(ca) a=c; return a; long max(long a,long b,long c) /定義求3個(gè)長整數(shù)中的最大者的
14、函數(shù) if(ba) a=b; if(ca) a=c; return a; ,運(yùn)行情況如下: 185 -76 567 (輸入3個(gè)整數(shù)) 56.87 90.23 -3214.78 (輸入3個(gè)實(shí)數(shù)) 67854 -912456 673456 (輸入3個(gè)長整數(shù)) i_max=567 (輸出3個(gè)整數(shù)的最大值) d_max=90.23 (輸出3個(gè)雙精度數(shù)的最大值) g_max=673456 (輸出3個(gè)長整數(shù)的最大值) 上例3個(gè)max函數(shù)的函數(shù)體是相同的,其實(shí)重載函數(shù)并不要求函數(shù)體相同。重載函數(shù)除了允許參數(shù)類型不同以外,還允許參數(shù)的個(gè)數(shù)不同。,重載的規(guī)則: 參數(shù)的個(gè)數(shù)和類型可以都不同。但不能只有函數(shù)的類型不
15、同而參數(shù)的個(gè)數(shù)和類型相同。 在使用重載函數(shù)時(shí),同名函數(shù)的功能應(yīng)當(dāng)相同或相近,不要用同一函數(shù)名去實(shí)現(xiàn)完全不相干的功能,多次調(diào)用同一函數(shù)時(shí)用同樣的實(shí)參,C+提供簡單的處理辦法,給形參一個(gè)默認(rèn)值,這樣形參就不必一定要從實(shí)參取值了。如有一函數(shù)聲明 float area(float r=6.5); 指定r的默認(rèn)值為6.5,如果在調(diào)用此函數(shù)時(shí),確認(rèn)r的值為6.5,則可以不必給出實(shí)參的值,如 area( ); /相當(dāng)于area(6.5); 如果不想使形參取此默認(rèn)值,則通過實(shí)參另行給出。如,*4.8 有默認(rèn)參數(shù)的函數(shù),函數(shù)原型如下: float volume(float h,float r=12.5); /只
16、對(duì)形參r指定默認(rèn)值12.5 函數(shù)調(diào)用可以采用以下形式: volume(45.6); /相當(dāng)于volume(45.6,12.5) volume(34.2,10.4) /h的值為34.2,r的值為10.4 實(shí)參與形參的結(jié)合是從左至右順序進(jìn)行的。,在調(diào)用一個(gè)函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸(recursive)調(diào)用。C+允許函數(shù)的遞歸調(diào)用。例如: int f(int x) int y,z; z=f(y); /在調(diào)用函數(shù)f的過程中,又要調(diào)用f函數(shù) return (2*); ,4.10 函數(shù)的遞歸調(diào)用,在一個(gè)函數(shù)內(nèi)部定義的變量是內(nèi)部變量,它只在本函數(shù)范圍內(nèi)有效,也就是說只有在
17、本函數(shù)內(nèi)才能使用它們,在此函數(shù)以外是不能使用這些變量的。同樣,在復(fù)合語句中定義的變量只在本復(fù)合語句范圍內(nèi)有效。這稱為局部變量(local variable)。如,4.11 局部變量和全局變量 4.11.1 局部變量,float f1(int a) /函數(shù)f1 int b,c; b、c有效a有效 char f2(int x, int y) /函數(shù)f2 int i,j; i、j有效x、y有效 int main( ) /主函數(shù) int m,n; int p,q; p、q在復(fù)合語句中有效m、n有效 ,在函數(shù)聲明中出現(xiàn)的參數(shù)名,其作用范圍只在本行的括號(hào)內(nèi)。實(shí)際上,編譯系統(tǒng)對(duì)函數(shù)聲明中的變量名是忽略的,即
18、使在調(diào)用函數(shù)時(shí)也沒有為它們分配存儲(chǔ)單元。例如 int max(int a,int b); /函數(shù)聲明中出現(xiàn)a、b int max(int x,int y) /函數(shù)定義,形參是x、y coutxyendl; /合法,x、y在函數(shù)體中有效 coutabendl; /非法,a、b在函數(shù)體中無效 編譯時(shí)認(rèn)為max函數(shù)體中的a和b未經(jīng)定義。,程序的編譯單位是源程序文件,一個(gè)源文件可以包含一個(gè)或若干個(gè)函數(shù)。在函數(shù)之外定義的變量是外部變量,稱為全局變量(global variable,也稱全程變量)。全局變量的有效范圍為從定義變量的位置開始到本源文件結(jié)束。,4.11.2 全局變量,int p=1,q=5;/
19、全局變量全局變量c1、c2的作用范圍 float f1(a)/定義函數(shù)f1 int a; int b,c; char c1,c2; /全局變量全局變量p、q的作用范圍 char f2 (int x, int y) /定義函數(shù)f2 int i,j; main ( )/主函數(shù) int m,n; ,使用說明: (1) 設(shè)全局變量的作用是增加函數(shù)間數(shù)據(jù)聯(lián)系的渠道。 (2) 建議不在必要時(shí)不要使用全局變量,因?yàn)椋?全局變量在程序的全部執(zhí)行過程中都占用存儲(chǔ)單元,而不是僅在需要時(shí)才開辟單元。,變量還有另一種屬性存儲(chǔ)期(storage duration,也稱生命期)。存儲(chǔ)期是指變量在內(nèi)存中的存在期間。 存儲(chǔ)期
20、可以分為靜態(tài)存儲(chǔ)期(static storage duration)和動(dòng)態(tài)存儲(chǔ)期(dynamic storage duration)。這是由變量的靜態(tài)存儲(chǔ)方式和動(dòng)態(tài)存儲(chǔ)方式?jīng)Q定的。,4.12 變量的存儲(chǔ)類別 動(dòng)態(tài)存儲(chǔ)方式與靜態(tài)存儲(chǔ)方式,靜態(tài)存儲(chǔ)方式是指在程序運(yùn)行期間,系統(tǒng)對(duì)變量分配固定的存儲(chǔ)空間。 動(dòng)態(tài)存儲(chǔ)方式則是在程序運(yùn)行期間,系統(tǒng)對(duì)變量動(dòng)態(tài)地分配存儲(chǔ)空間。 先看一下內(nèi)存中的供用戶使用的存儲(chǔ)空間的情況。這個(gè)存儲(chǔ)空間可以分為三部分,即: (1) 程序區(qū) (2) 靜態(tài)存儲(chǔ)區(qū) (3) 動(dòng)態(tài)存儲(chǔ)區(qū),又分動(dòng)態(tài)內(nèi)存和棧區(qū) 圖4.13,函數(shù)本質(zhì)上是全局的,因?yàn)橐粋€(gè)函數(shù)要被另外的函數(shù)調(diào)用。 也可以指定函數(shù)只
21、能被本文件調(diào)用,而不能被其他文件調(diào)用。 根據(jù)函數(shù)能否被其他源文件調(diào)用,將函數(shù)區(qū)分為內(nèi)部函數(shù)和外部函數(shù)。,4.15 內(nèi)部函數(shù)和外部函數(shù),如果一個(gè)函數(shù)只能被本文件中其他函數(shù)所調(diào)用,它稱為內(nèi)部函數(shù)。 在定義內(nèi)部函數(shù)時(shí),在函數(shù)名和函數(shù)類型的前面加static。函數(shù)首部的一般格式為 static 類型標(biāo)識(shí)符 函數(shù)名(形參表) 如 static int fun(int a,int b) 內(nèi)部函數(shù)又稱靜態(tài)(static)函數(shù)。使用內(nèi)部函數(shù),可以使函數(shù)只局限于所在文件。,4.15.1 內(nèi)部函數(shù),在定義函數(shù)時(shí),如果在函數(shù)首部的最左端冠以關(guān)鍵字extern,則表示此函數(shù)是外部函數(shù),可供其他文件調(diào)用。 如函數(shù)首部可
22、以寫為 extern int fun (int a, int b) 這樣,函數(shù)fun就可以為其他文件調(diào)用。 在定義函數(shù)時(shí)省略extern,則默認(rèn)為外部函數(shù)。 本書前面所用的函數(shù)都是外部函數(shù)。,4.15.2 外部函數(shù),例4.15 輸入兩個(gè)整數(shù),要求輸出其中的大者。用外部函數(shù)實(shí)現(xiàn)。 file1.cpp(文件) #include using namespace std; int main( ) extern int max(int,int); /聲明在本函數(shù)中將要調(diào)用在其他文件中定義的max函數(shù) int a,b; cinab; couty?x:y; return z; ,“預(yù)處理命令”(prepro
23、cessor directives),以改進(jìn)程序設(shè)計(jì)環(huán)境,提高編程效率。 預(yù)處理命令是C+統(tǒng)一規(guī)定的,但是它不是C+語言本身的組成部分,不能直接對(duì)它們進(jìn)行編譯(因?yàn)榫幾g程序不能識(shí)別它們)。 C+與其他高級(jí)語言的一個(gè)重要區(qū)別是可以使用預(yù)處理命令和具有預(yù)處理的功能。,4.16 預(yù)處理命令,C+提供的預(yù)處理功能主要有以下3種: () 宏定義 () 文件包含 () 條件編譯 為了與一般C+語句相區(qū)別,這些命令以符號(hào)“”開頭,而且末尾不包含分號(hào)。,可以用#define命令將一個(gè)指定的標(biāo)識(shí)符(即宏名)來代表一個(gè)字符串。定義宏的作用一般是用一個(gè)短的名字代表一個(gè)長的字符串。它的一般形式為 #define 標(biāo)識(shí)
24、符 字符串 這就是已經(jīng)介紹過的定義符號(hào)常量。如 #define PI 3.1415926 還可以用#define命令定義帶參數(shù)的宏定義。其定義的一般形式為 #define 宏名(參數(shù)表) 字符串 如 #define S(a,b) a*b /定義宏S(矩形面積),a、b為宏的參數(shù),4.16.1 宏定義,使用的形式如下: area=S(3,2) 用、分別代替宏定義中的形式參數(shù)a和b,即用3*2代替S(3,2)。因此賦值語句展開為 area=3*2;,1.“文件包含”的作用 所謂“文件包含”處理是指一個(gè)源文件可以將另外一個(gè)源文件的全部內(nèi)容包含進(jìn)來,即將另外的文件包含到本文件之中。C+提供了#incl
25、ude命令用來實(shí)現(xiàn)“文件包含”的操作。如在file1.cpp中有以下#include命令: #include file2.cpp 它的作用見圖4.18示意。,4.16.2 “文件包含”處理,圖4.18,“文件包含”命令的作用:它可以節(jié)省程序設(shè)計(jì)人員的重復(fù)勞動(dòng)。 庫函數(shù)的開發(fā)者把這些信息寫在一個(gè)文件中,用戶只需將該文件“包含”進(jìn)來即可(如調(diào)用數(shù)學(xué)函數(shù)的,應(yīng)包含cmath文件),這就大大簡化了程序,寫一行#include命令的作用相當(dāng)于寫幾十行、幾百行甚至更多行的內(nèi)容。 在文件頭部的被包含的文件稱為“標(biāo)題文件”或“頭部文件”。 頭文件一般包含以下幾類內(nèi)容: (1) 對(duì)類型的聲明。 (2) 函數(shù)聲明
26、。,(3) 內(nèi)置(inline)函數(shù)的定義。 (4) 宏定義。用#define定義的符號(hào)常量和用const聲明的常變量。 (5) 全局變量定義。 (6) 外部變量聲明。如entern int a; (7) 還可以根據(jù)需要包含其他頭文件。 由于有了#include命令,就把不同的文件組合在一起,形成一個(gè)文件。因此說,頭文件是源文件之間的接口。 軟件商提供頭文件和類的實(shí)現(xiàn)(函數(shù))的目標(biāo)代碼。使用時(shí)包含頭文件,在編譯后連接對(duì)應(yīng)的目標(biāo)代碼。,2. include命令的兩種形式 在#include命令中,文件名除了可以用尖括號(hào)括起來以外,還可以用雙撇號(hào)括起來。#include命令的一般形式為 #incl
27、ude 或 #include 文件名 如 #include 或 #include iostream,二者的區(qū)別: 用尖括號(hào)時(shí),系統(tǒng)到系統(tǒng)目錄中尋找要包含的文件,如果找不到,編譯系統(tǒng)就給出出錯(cuò)信息。 #include file2.c則默認(rèn)指用戶當(dāng)前目錄中的文件。系統(tǒng)先在用戶當(dāng)前目錄中尋找要包含的文件,若找不到,再按標(biāo)準(zhǔn)方式查找。如果程序中要包含的是用戶自己編寫的文件,宜用雙撇號(hào)形式。 對(duì)于系統(tǒng)提供的頭文件,但顯然用尖括號(hào)形式更直截了當(dāng),效率更高。,3. 關(guān)于C+標(biāo)準(zhǔn)庫 在C+編譯系統(tǒng)中,提供了許多系統(tǒng)函數(shù)和宏定義,而對(duì)函數(shù)的聲明則分別存放在不同的頭文件中。如果要調(diào)用某一個(gè)函數(shù),就必須用#include命令將有關(guān)的頭文件包含進(jìn)來。 新的C+標(biāo)準(zhǔn)庫中的頭文件一般不再包括后綴.h,例如 #include ,但為了使大批已有的C程序能繼續(xù)使用,許多C+編譯系統(tǒng)保留了C的頭文件,即提供兩種不同的頭文件,由程序設(shè)計(jì)者選用。如 #include /C形式的頭文件 #include /C+形式的頭文件 效果基本上是一樣的。 建議盡量用符合C+標(biāo)準(zhǔn)的形式,即在包含C+頭文件時(shí)一般不用后綴。如果用戶自己編寫頭文件,可以用.h為后綴。,一般情況下,在進(jìn)行編譯時(shí)對(duì)源程序中的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全生產(chǎn) 法律
- 關(guān)于企業(yè)生產(chǎn)安全
- 安全生產(chǎn)約談企業(yè)記錄
- 智慧教育的發(fā)展之路教育科技創(chuàng)新實(shí)驗(yàn)室的探索
- 基于區(qū)塊鏈的石材供應(yīng)鏈可信度評(píng)估-洞察及研究
- 數(shù)字經(jīng)濟(jì)時(shí)代的網(wǎng)絡(luò)安全問題
- 松茸多糖的制備及其對(duì)UVB誘導(dǎo)黑色素生成的抑制作用研究及其分子機(jī)制探索
- 建筑設(shè)計(jì)師項(xiàng)目設(shè)計(jì)經(jīng)驗(yàn)分享
- 呼吸機(jī)渦輪增壓系統(tǒng)行業(yè)市場規(guī)模預(yù)測與機(jī)遇分析
- 前臺(tái)工作流程的標(biāo)準(zhǔn)化與效率提升以xxxx年為例的實(shí)踐報(bào)告
- 工程預(yù)算審核報(bào)告回復(fù)函
- 醫(yī)藥行業(yè)銷售流程與培訓(xùn)手冊(cè)
- 深信服aES產(chǎn)品技術(shù)白皮書-V1.5
- 農(nóng)商銀行貸款合同電子版
- 低壓電氣基礎(chǔ)知識(shí)培訓(xùn)電工-電氣工程師
- 翼狀胬肉術(shù)后護(hù)理
- 《目視化管理》課件
- 營銷策劃 -阿那亞品牌手冊(cè)
- 醫(yī)院中層干部培訓(xùn)課件
- ERP車間管理模塊操作培訓(xùn)手冊(cè)
- 企業(yè)消防安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論