C語(yǔ)言,6函數(shù)教程_第1頁(yè)
C語(yǔ)言,6函數(shù)教程_第2頁(yè)
C語(yǔ)言,6函數(shù)教程_第3頁(yè)
C語(yǔ)言,6函數(shù)教程_第4頁(yè)
C語(yǔ)言,6函數(shù)教程_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第6章 模塊化程序設(shè)計(jì)函數(shù)2/20/20221 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt26.1 函數(shù)的概念C程序結(jié)構(gòu)C C程序結(jié)構(gòu)如圖所示程序結(jié)構(gòu)如圖所示1.1.一個(gè)一個(gè)C C程序可以分為若干個(gè)函數(shù)程序可以分為若干個(gè)函數(shù)2.2.每個(gè)程序有且只有一個(gè)主函數(shù)每個(gè)程序有且只有一個(gè)主函數(shù)(main),(main),其他都是子函數(shù)其他都是子函數(shù)3.3.子函數(shù)可以相互調(diào)用子函數(shù)可以相互調(diào)用, ,但主函數(shù)不能被但主函數(shù)不能被調(diào)用調(diào)用4.4.一個(gè)一個(gè)C C源程序由一個(gè)或多個(gè)文件構(gòu)成源程序由一個(gè)或多個(gè)文件構(gòu)成, ,每個(gè)文件就是一個(gè)編譯單位每個(gè)文件就是一個(gè)編譯單位 C語(yǔ)言程

2、序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt3說(shuō)明說(shuō)明: :1.1.一個(gè)一個(gè)C C程序的執(zhí)行從主函數(shù)程序的執(zhí)行從主函數(shù)(main)(main)開始開始, ,調(diào)用其他函數(shù)后仍回到調(diào)用其他函數(shù)后仍回到mainmain主函數(shù)結(jié)束主函數(shù)結(jié)束. .2.2.每個(gè)子函數(shù)都是平行的每個(gè)子函數(shù)都是平行的, ,任何子函數(shù)都任何子函數(shù)都不從屬于其他函數(shù)不從屬于其他函數(shù)3.3.從用戶角度從用戶角度, ,函數(shù)可以分為函數(shù)可以分為: : 標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù), ,即庫(kù)函數(shù)即庫(kù)函數(shù) 用戶自定義函數(shù)用戶自定義函數(shù)4.4.從函數(shù)形式可以分為從函數(shù)形式可以分為: : 無(wú)參函數(shù)無(wú)參函數(shù):printstar()

3、:printstar() 有參函數(shù)有參函數(shù):printf(“hello”):printf(“hello”)#include void printStar() printf(“*n”);void printMessage() printf(“Hello, world.n”); printStar();void main() printStar(); printMessage(); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt4函數(shù)定義的一般形式函數(shù)定義的一般形式函數(shù)定義的一般形式: : 類型說(shuō)明類型說(shuō)明 函數(shù)名函數(shù)名(形式參數(shù)說(shuō)明形式參數(shù)說(shuō)明) 函數(shù)體函數(shù)體 形

4、式參數(shù)說(shuō)明方法形式參數(shù)說(shuō)明方法: : 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名,類型類型 變量名變量名 無(wú)參數(shù)函數(shù)定義形式無(wú)參數(shù)函數(shù)定義形式: : 類型說(shuō)明類型說(shuō)明 函數(shù)名函數(shù)名()() 函數(shù)體函數(shù)體 void printHello()void printHello() printf(“hello!n”); printf(“hello!n”); 有參數(shù)函數(shù)定義形式有參數(shù)函數(shù)定義形式: : 類型說(shuō)明類型說(shuō)明 函數(shù)名函數(shù)名( (形式參數(shù)說(shuō)明形式參數(shù)說(shuō)明) ) 函數(shù)體函數(shù)體 int sum(int x, int y)int sum(int x, int y) int z; int z; z=x+y; z=x+

5、y; return(z); return(z); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt5函數(shù)體函數(shù)體一般情況下一般情況下, ,函數(shù)體有兩部分組成函數(shù)體有兩部分組成: : 局部變量說(shuō)明局部變量說(shuō)明 語(yǔ)句語(yǔ)句; ; 局部變量說(shuō)明局部變量說(shuō)明: : 函數(shù)體內(nèi)的變量函數(shù)體內(nèi)的變量. .其有效范圍僅在本函數(shù)其有效范圍僅在本函數(shù)體內(nèi)起作用體內(nèi)起作用, ,離開本函數(shù)無(wú)意義離開本函數(shù)無(wú)意義. .int sum(int x, int y)int sum(int x, int y) int z; int z; /局部變量定義局部變量定義 z=x+y;z=x+y; retu

6、rn(z); return(z); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt6函數(shù)的參數(shù)和函數(shù)的值一個(gè)程序由若干個(gè)函數(shù)組成一個(gè)程序由若干個(gè)函數(shù)組成, ,各函數(shù)各函數(shù)調(diào)用時(shí)經(jīng)常要傳遞一些數(shù)據(jù)調(diào)用時(shí)經(jīng)常要傳遞一些數(shù)據(jù), ,即即調(diào)用函調(diào)用函數(shù)數(shù)把數(shù)據(jù)傳遞給把數(shù)據(jù)傳遞給被調(diào)用函數(shù)被調(diào)用函數(shù), ,經(jīng)過(guò)經(jīng)過(guò)被調(diào)被調(diào)用函數(shù)用函數(shù)處理后處理后, ,得到一個(gè)確定的結(jié)果得到一個(gè)確定的結(jié)果, ,在在返回返回調(diào)用函數(shù)調(diào)用函數(shù)時(shí)時(shí), ,將結(jié)果帶回將結(jié)果帶回調(diào)用函數(shù)調(diào)用函數(shù). .#include #include int max(int x, int y)int max(int x,

7、 int y) int z; int z; z=(xy) ? x : y; z=(xy) ? x : y; return(z); return(z); void main()void main() int a,b,c; int a,b,c; scanf(“%d%d”,&a, &b); scanf(“%d%d”,&a, &b); c = max(a, b); c = max(a, b); printf(“max is %dn”,c); printf(“max is %dn”,c); 主函數(shù)主函數(shù)子函數(shù)子函數(shù) . . c = max(a,b);c = max(a,b

8、); . .int max (intx, int y) int max (intx, int y) . . . . . .return (z); return (z); a,bz各函數(shù)之間數(shù)據(jù)往來(lái)通過(guò)各函數(shù)之間數(shù)據(jù)往來(lái)通過(guò)參數(shù)傳遞參數(shù)傳遞和和返回語(yǔ)句返回語(yǔ)句實(shí)現(xiàn)實(shí)現(xiàn) C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt7函數(shù)參數(shù)函數(shù)參數(shù): :用于函數(shù)間數(shù)據(jù)的傳遞用于函數(shù)間數(shù)據(jù)的傳遞形式參數(shù)形式參數(shù): :定義函數(shù)定義函數(shù)時(shí)給出的參數(shù)時(shí)給出的參數(shù)實(shí)際參數(shù)實(shí)際參數(shù): :調(diào)用函數(shù)調(diào)用函數(shù)時(shí)給出的參數(shù)時(shí)給出的參數(shù)#include #include int max(int max

9、(intint x, intx, int y y) ) int z; int z; z=(xy) ? x : y; z=(xy) ? x : y; return(z); return(z); void main()void main() int a,b,c; int a,b,c; scanf(“%d%d”,&a, &b); scanf(“%d%d”,&a, &b); c=max( c=max( a a , , b b ); ); printf(“max is %dn”,c); printf(“max is %dn”,c); 對(duì)于函數(shù)對(duì)于函數(shù)max有兩個(gè)形式參數(shù)有

10、兩個(gè)形式參數(shù)x,y形式參數(shù)形式參數(shù)x和和y只在只在max函數(shù)中使用函數(shù)中使用a,b是主函數(shù)中定義的變量是主函數(shù)中定義的變量, 當(dāng)當(dāng)main函數(shù)調(diào)用函數(shù)調(diào)用max函數(shù)時(shí)函數(shù)時(shí). a,b成為成為max的實(shí)際參數(shù)的實(shí)際參數(shù)調(diào)用時(shí)調(diào)用時(shí), 實(shí)際參數(shù)的值賦給形參進(jìn)行處理實(shí)際參數(shù)的值賦給形參進(jìn)行處理例例:max接受到兩個(gè)值接受到兩個(gè)值:8923 max返回返回89一、形式參數(shù)和實(shí)際參數(shù)一、形式參數(shù)和實(shí)際參數(shù) C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt8#include #include int max(int max(intint x, intx, int y y) )

11、 int z; int z; z=(xy) ? x : y; z=(xy) ? x : y; return(z); return(z); void main()void main() int a,b,c; int a,b,c; scanf(“%d%d”,&a, &b); scanf(“%d%d”,&a, &b); c=max( c=max( a a , , b b ); ); printf(“max is %dn”,c); printf(“max is %dn”,c); 說(shuō)明說(shuō)明:1.定義函數(shù)時(shí)定義函數(shù)時(shí),必須說(shuō)明形參的類型必須說(shuō)明形參的類型,形參只能形參只能

12、是是變量變量(包括數(shù)組包括數(shù)組). 不能是常量或表達(dá)式不能是常量或表達(dá)式2.函數(shù)被調(diào)用之前函數(shù)被調(diào)用之前,形參和子函數(shù)中的變量形參和子函數(shù)中的變量不占內(nèi)存不占內(nèi)存,調(diào)用結(jié)束返回調(diào)用結(jié)束返回,形參所占的內(nèi)存被收回形參所占的內(nèi)存被收回.3.實(shí)參可以是實(shí)參可以是常量、變量或表達(dá)式常量、變量或表達(dá)式. 因?yàn)閭鬟f過(guò)來(lái)的是具體數(shù)值因?yàn)閭鬟f過(guò)來(lái)的是具體數(shù)值.4.實(shí)參和形參類型必須一致實(shí)參和形參類型必須一致(或可以安全轉(zhuǎn)換或可以安全轉(zhuǎn)換).5.C語(yǔ)言中語(yǔ)言中,實(shí)參和形參傳遞的是實(shí)參和形參傳遞的是”按值傳遞按值傳遞”,即單向傳遞即單向傳遞, 只與參數(shù)相對(duì)位置有關(guān)只與參數(shù)相對(duì)位置有關(guān),而與而與變量名無(wú)關(guān)變量名無(wú)關(guān)

13、int b, int aint c;int c;c=( ab ) ? a :b;c=( ab ) ? a :b;return(c);return(c);1320main-amain-bmax-amax-b1320 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt9#include int sum(int a, int b) a=a+b; b=a+b; return(a);void main() int a=1,b=3,c; c=sum(a,b); printf(“sum of %d,%d is %dn”,a,b,c);閱讀下面程序,寫出運(yùn)行結(jié)果閱讀下面程序,寫出運(yùn)

14、行結(jié)果函數(shù)被調(diào)用之前函數(shù)被調(diào)用之前,形參和子函數(shù)中的變量形參和子函數(shù)中的變量不占內(nèi)存不占內(nèi)存,調(diào)用結(jié)束返回調(diào)用結(jié)束返回,形參所占的內(nèi)存被收回形參所占的內(nèi)存被收回.實(shí)參和形參傳遞的是實(shí)參和形參傳遞的是”值傳遞值傳遞”,即單向傳遞即單向傳遞, 只與參數(shù)相對(duì)位置有關(guān)只與參數(shù)相對(duì)位置有關(guān),而與而與變量名無(wú)關(guān)變量名無(wú)關(guān)sum of 1,3 is 4sum of 1,3 is 4 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt10二、函數(shù)返回值二、函數(shù)返回值#include #include int max(int max(intint x, intx, int y y)

15、) int z; int z; z=(xy) ? x : y; z=(xy) ? x : y; return(z); return(z); void main()void main() int a,b,c; int a,b,c; scanf(“%d%d”,&a, &b); scanf(“%d%d”,&a, &b); c=max( c=max( a a , , b b ); ); printf(“max is %dn”,c); printf(“max is %dn”,c); 函數(shù)值也就是函數(shù)的返回值函數(shù)值也就是函數(shù)的返回值,是一個(gè)是一個(gè)具體確定的值具體確定的值.函

16、數(shù)使用函數(shù)使用returnreturn語(yǔ)句返回值。語(yǔ)句返回值。一個(gè)函數(shù)內(nèi)可以有多個(gè)一個(gè)函數(shù)內(nèi)可以有多個(gè)returnreturn語(yǔ)句,語(yǔ)句,執(zhí)行到任何執(zhí)行到任何returnreturn語(yǔ)句,函數(shù)都將立即語(yǔ)句,函數(shù)都將立即返回到調(diào)用函數(shù)返回到調(diào)用函數(shù)if(xy)if(xy) return(x); return(x);elseelse return(y); return(y);returnreturn后面的后面的()()可以省略可以省略, ,可以返回可以返回一個(gè)表達(dá)式一個(gè)表達(dá)式, ,先求解表達(dá)式的值先求解表達(dá)式的值, ,再返回再返回. .int max(int x, int y)int max(in

17、t x, int y) return xy?x:y; return xy?x:y; 1.1.返回函數(shù)值的方法返回函數(shù)值的方法 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt11#include #include int max(int max(intint x, intx, int y y) ) int z; int z; z=(xy) ? x : y; z=(xy) ? x : y; return(z); return(z); void main()void main() int a,b,c; int a,b,c; scanf(“%d%d”,&a, &

18、amp;b); scanf(“%d%d”,&a, &b); c=max( c=max( a a , , b b ); ); printf(“max is %dn”,c); printf(“max is %dn”,c); 2.函數(shù)值的類型函數(shù)值的類型 函數(shù)的類型即函數(shù)值的類型函數(shù)的類型即函數(shù)值的類型. .例如例如, ,函數(shù)函數(shù) maxmax是是intint型型, ,函數(shù)的返回值也是函數(shù)的返回值也是intint型型. .省略了類型說(shuō)明的函數(shù)就是省略了類型說(shuō)明的函數(shù)就是intint型型. .returnreturn中表達(dá)式的值一般和函數(shù)中表達(dá)式的值一般和函數(shù)類型相同類型相同. .如果

19、不一致如果不一致, ,則需要進(jìn)行類型轉(zhuǎn)換則需要進(jìn)行類型轉(zhuǎn)換. .以以 函數(shù)類型為準(zhǔn)函數(shù)類型為準(zhǔn). . C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt123.不需要返回的函數(shù)不需要返回的函數(shù)如果函數(shù)中沒(méi)有如果函數(shù)中沒(méi)有return, return, 認(rèn)為是認(rèn)為是 一個(gè)過(guò)程一個(gè)過(guò)程, ,可以使用類型可以使用類型void.void.如果一個(gè)函數(shù)被聲明如果一個(gè)函數(shù)被聲明voidvoid類型類型, ,就不允許就不允許 再引用它的返回值。只能單純調(diào)用它。再引用它的返回值。只能單純調(diào)用它。#include void printStar() printf(“*n”);void

20、printMessage() printf(“Hello, world.n”); printStar();void main() printStar(); printMessage(); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt13函數(shù)的調(diào)用一、函數(shù)調(diào)用一般形式一、函數(shù)調(diào)用一般形式一般形式一般形式: 函數(shù)名函數(shù)名(實(shí)參列表實(shí)參列表)說(shuō)明說(shuō)明: :如果調(diào)用無(wú)參函數(shù)如果調(diào)用無(wú)參函數(shù), ,實(shí)參表列可以忽略實(shí)參表列可以忽略, , 但括號(hào)不能省但括號(hào)不能省. .實(shí)參個(gè)數(shù)和形參個(gè)數(shù)相同實(shí)參個(gè)數(shù)和形參個(gè)數(shù)相同. .實(shí)參和形參類型一一對(duì)應(yīng)實(shí)參和形參類型一一對(duì)應(yīng), ,必要時(shí)

21、會(huì)進(jìn)必要時(shí)會(huì)進(jìn)行類型轉(zhuǎn)換行類型轉(zhuǎn)換. .注意注意: :不同系統(tǒng)中不同系統(tǒng)中, ,實(shí)參的計(jì)算順序不同實(shí)參的計(jì)算順序不同. . 一般認(rèn)為從右到左計(jì)算和賦值一般認(rèn)為從右到左計(jì)算和賦值. . 一般在調(diào)用函數(shù)前計(jì)算出實(shí)參的值一般在調(diào)用函數(shù)前計(jì)算出實(shí)參的值例1 讀程序,寫出結(jié)果#include int f(int a, int b) int c; if(a b) c = 1; else if(a = b) c = 0; else c = -1; return c;void main() int i = 2, p; p = f(i, +i); printf(“%d”, p); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章

22、 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt14二、函數(shù)調(diào)用方式二、函數(shù)調(diào)用方式1、函數(shù)語(yǔ)句、函數(shù)語(yǔ)句 形式為形式為: :函數(shù)函數(shù)( (實(shí)參表列實(shí)參表列););例如例如: :printMessage();printMessage();printf(“%d”,p);printf(“%d”,p);說(shuō)明說(shuō)明: :這種方式不要求函數(shù)帶返回值這種方式不要求函數(shù)帶返回值, ,函數(shù)只執(zhí)行一定操作函數(shù)只執(zhí)行一定操作. .2 2、函數(shù)表達(dá)式、函數(shù)表達(dá)式 函數(shù)的返回值參與運(yùn)算函數(shù)的返回值參與運(yùn)算例如例如: :m = max(a,b);m = max(a,b);m = 3 m = 3 * * max(a,b);

23、 max(a,b);printf(“%d”,max(a,b);printf(“%d”,max(a,b);說(shuō)明說(shuō)明: :這種方式的函數(shù)不能用于這種方式的函數(shù)不能用于voidvoid類型類型 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt15三、函數(shù)調(diào)用的執(zhí)行過(guò)程三、函數(shù)調(diào)用的執(zhí)行過(guò)程從右到左的順序從右到左的順序, ,計(jì)算實(shí)參中各計(jì)算實(shí)參中各表達(dá)式值表達(dá)式值. .按照位置按照位置, ,將實(shí)參的值一一將實(shí)參的值一一傳遞給形參傳遞給形參. .執(zhí)行被調(diào)用函數(shù)執(zhí)行被調(diào)用函數(shù). .當(dāng)遇到當(dāng)遇到return(return(表達(dá)式表達(dá)式) )語(yǔ)句時(shí)語(yǔ)句時(shí), ,計(jì)算表達(dá)式的值并返回

24、主調(diào)函數(shù)計(jì)算表達(dá)式的值并返回主調(diào)函數(shù). .例2 讀程序,寫出結(jié)果#include int iabs(float x) return (x 0 ? x : -x);void main() float x = -0.6, y; y = iabs(2 * x); printf(“x=%f,iabs(x)=%fn”, x, y);1234X= -0.600000,iabs(x)=1.000000 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt16四、函數(shù)的原形四、函數(shù)的原形在程序中調(diào)用函數(shù)需滿足以下條件在程序中調(diào)用函數(shù)需滿足以下條件: :被調(diào)用函數(shù)必須存在被調(diào)用函數(shù)必須

25、存在, ,且必須遵循且必須遵循“先定義后使用先定義后使用”的原則的原則如果被調(diào)用函數(shù)的定義在主調(diào)函如果被調(diào)用函數(shù)的定義在主調(diào)函數(shù)之后數(shù)之后, ,可以在調(diào)用之前給出可以在調(diào)用之前給出原形原形說(shuō)明說(shuō)明. .原形說(shuō)明原形說(shuō)明: :類型說(shuō)明類型說(shuō)明 函數(shù)名函數(shù)名( (參數(shù)類型參數(shù)類型, ,參數(shù)類型參數(shù)類型) C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt17函數(shù)的嵌套調(diào)用嵌套調(diào)用是指在一個(gè)函數(shù)的函數(shù)體嵌套調(diào)用是指在一個(gè)函數(shù)的函數(shù)體中又調(diào)用了其他函數(shù)中又調(diào)用了其他函數(shù). .程序執(zhí)行過(guò)程程序執(zhí)行過(guò)程: :第一層第一層 第二層第二層 第三層第三層 main() printSt

26、ar() printStar(); printfMessage() printMessage(); printStar(); printStar(); 結(jié)束#include void printStar() printf(“*n”);void printMessage() printf(“Hello, world.n”); printStar();void main() printStar(); printMessage(); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt18例例3 3 編程求編程求)!( !mnmnCmn分析分析: : 重復(fù)三次不同的階乘運(yùn)算

27、重復(fù)三次不同的階乘運(yùn)算, ,只是每次的值不同只是每次的值不同. .將求階乘的過(guò)程編程一個(gè)函數(shù)將求階乘的過(guò)程編程一個(gè)函數(shù)fac,fac,以不同的參數(shù)值來(lái)調(diào)用以不同的參數(shù)值來(lái)調(diào)用facfacfackk!#include #include float fac(int k); float t=1.0; int i; for(i=2;i1n1時(shí)時(shí)11nnxxx當(dāng)當(dāng)n=0n=0時(shí)時(shí)當(dāng)當(dāng)n!=1n!=1時(shí)時(shí) C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt20 函數(shù)的遞歸調(diào)用是指在調(diào)用一個(gè)函數(shù)時(shí)又直接或間接調(diào)函數(shù)的遞歸調(diào)用是指在調(diào)用一個(gè)函數(shù)時(shí)又直接或間接調(diào)用函數(shù)本身用函數(shù)本身.

28、 . 直接調(diào)用直接調(diào)用 間接調(diào)用間接調(diào)用 遞歸調(diào)用必須引入一個(gè)遞歸調(diào)用必須引入一個(gè)循環(huán)條件控制遞歸結(jié)束循環(huán)條件控制遞歸結(jié)束, ,否則進(jìn)入死循環(huán)否則進(jìn)入死循環(huán). . C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt21例例4 4 有有5 5個(gè)人坐在一起個(gè)人坐在一起, ,問(wèn)第問(wèn)第5 5個(gè)人多少歲個(gè)人多少歲? ?答答: :比第比第4 4個(gè)人大個(gè)人大2 2歲歲; ;第第4 4個(gè)人說(shuō)他比第三個(gè)人大個(gè)人說(shuō)他比第三個(gè)人大2 2歲歲; ;第第3 3個(gè)人比第個(gè)人比第2 2個(gè)人大個(gè)人大2 2歲歲, ,第第2 2個(gè)人比第個(gè)人比第1 1個(gè)人大個(gè)人大2 2歲歲. .而第而第1 1個(gè)人有個(gè)人

29、有1010歲歲. .問(wèn)第問(wèn)第5 5個(gè)人多少歲個(gè)人多少歲? ? 計(jì)算公式計(jì)算公式: :2)1(10)(nagenage(n=1)(n1)回推階段遞推階段 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt22 函數(shù)調(diào)用過(guò)程函數(shù)調(diào)用過(guò)程#include int age ( int n) int c; if (n=1) c=10; else c=age(n-1) + 2; return c;void main() printf(“ %d “, age(5); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt23例例5 5 用遞歸調(diào)用求用遞歸調(diào)

30、用求n!n!階乘階乘(n=0)(n=0)使用循環(huán)做使用循環(huán)做: :float fac( int n)float fac( int n) float f=1; float f=1; if (n=0) if (n=0) for(i=2; i=n; i+) for(i=2; i=n; i+) f f * *= i;= i; else f else f=-=-1;1; return f; return f; #include float fac (int n) float f; if (n1) f=fac(n-1) * n; else if (n=0|n=1) f=1; else f=-1; retu

31、rn f;void main() int n; float y; printf(“input a integer number:”); scanf(“%d”, &n); y = fac (n); if (y1) C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt24根據(jù)變量的作用域作用域不同,可分為局部變量局部變量和全局變量全局變量?jī)煞N。1變量的作用域變量的作用域變量的作用域:變量的作用域:變量起作用的范圍。局部變量:局部變量:在函數(shù)內(nèi)部或某個(gè)控制塊的內(nèi)部定義的變量。局部變量的作用域:函數(shù)內(nèi)部。作用:增強(qiáng)了函數(shù)模塊的獨(dú)立性。全局變量:全局變量:在函數(shù)外面定義

32、的變量稱為全局變量。全局變量的作用域:從該變量定義的位置開始,直到源文件結(jié)束。作用:在同一文件中,所有函數(shù)都可以引用全局變量。增強(qiáng)了各函數(shù)間數(shù)據(jù)的聯(lián)系。 6.2 變量的作用域 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt25局部變量和全局變量的作用域如圖所示: int i; main() float a, b; char s; function(); int k; void fuction(); int m; 局部變量 s 的作用域 局部變量 a, b 的作用域 全局變量 i 的作用域 全局變量 k 的作用域 局部變量 的作用域 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章

33、 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt26閱讀程序【例6-4】的程序, 了解變量作用域。請(qǐng)注意區(qū)分局部變量局部變量和全局變量全局變量的作用域。程序:程序: example6_4.c C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt27變量的存儲(chǔ)類別一、變量的動(dòng)態(tài)存儲(chǔ)和靜態(tài)存儲(chǔ)一、變量的動(dòng)態(tài)存儲(chǔ)和靜態(tài)存儲(chǔ)全局變量和局部變量全局變量和局部變量 變量的作用域變量的作用域靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ) 變量的存儲(chǔ)類別變量的存儲(chǔ)類別: :生存期生存期內(nèi)存中供用戶使用的空間有內(nèi)存中供用戶使用的空間有: : 代碼區(qū)代碼區(qū) 靜態(tài)存儲(chǔ)區(qū)靜態(tài)存儲(chǔ)區(qū): :編譯時(shí)分配空間

34、編譯時(shí)分配空間 動(dòng)態(tài)存儲(chǔ)區(qū)動(dòng)態(tài)存儲(chǔ)區(qū): :執(zhí)行時(shí)分配空間執(zhí)行時(shí)分配空間變量或函數(shù)的屬性變量或函數(shù)的屬性: :數(shù)據(jù)類型存儲(chǔ)類型自動(dòng)型auto靜態(tài)型static寄存器register外部型extern C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt28二、局部變量的存儲(chǔ)類別二、局部變量的存儲(chǔ)類別1 1、自動(dòng)類別、自動(dòng)類別 存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū), ,用用autoauto說(shuō)明說(shuō)明如如: : int func1( int a) int func1( int a) autoauto int b, c=3; int b, c=3; 形參形參a, a, 變量變量b,

35、cb,c都是自動(dòng)變量都是自動(dòng)變量, ,調(diào)用函數(shù)時(shí)調(diào)用函數(shù)時(shí), ,系統(tǒng)給它們分配存系統(tǒng)給它們分配存儲(chǔ)空間儲(chǔ)空間, ,函數(shù)調(diào)用結(jié)束時(shí)函數(shù)調(diào)用結(jié)束時(shí), ,自動(dòng)自動(dòng)釋放空間釋放空間. .通常通常autoauto可以省略可以省略 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt292 2、局部靜態(tài)變量、局部靜態(tài)變量 占用靜態(tài)存儲(chǔ)占用靜態(tài)存儲(chǔ), ,用用staticstatic說(shuō)明說(shuō)明說(shuō)明說(shuō)明: :局部靜態(tài)變量局部靜態(tài)變量, ,屬于靜態(tài)存儲(chǔ)類別屬于靜態(tài)存儲(chǔ)類別, , 在程序執(zhí)行的整個(gè)過(guò)程中在程序執(zhí)行的整個(gè)過(guò)程中, ,都不釋放都不釋放 存儲(chǔ)空間存儲(chǔ)空間. .局部靜態(tài)變量在編譯時(shí)賦

36、值局部靜態(tài)變量在編譯時(shí)賦值, , 僅賦值一次僅賦值一次. .如果定義局部靜態(tài)變量沒(méi)有賦初值如果定義局部靜態(tài)變量沒(méi)有賦初值, , 系統(tǒng)會(huì)自動(dòng)賦初值系統(tǒng)會(huì)自動(dòng)賦初值. .局部靜態(tài)變量局部靜態(tài)變量, ,只有在定義它的函數(shù)只有在定義它的函數(shù) 內(nèi)被引用內(nèi)被引用( (它存在它存在, ,但不被其他函數(shù)引用但不被其他函數(shù)引用) )如果如果f f不定義成不定義成staticstatic是什么結(jié)果是什么結(jié)果? ?f=1;j=1; fac(1): f=f*n=1*1=1; 輸出1!=1;j=2; fac(2): f=f*n=1*2=2; 輸出2!=2;j=3; fac(3): f=f*n=2*3=6; 輸出3!=6

37、;j=4; fac(4): f=f*n=6*4=24; 輸出4!=24; C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt303 3、寄存器變量、寄存器變量 存儲(chǔ)在寄存器中存儲(chǔ)在寄存器中, ,用用registerregister說(shuō)明說(shuō)明說(shuō)明說(shuō)明: :計(jì)算機(jī)的寄存器個(gè)數(shù)有限計(jì)算機(jī)的寄存器個(gè)數(shù)有限. .寄存器變量對(duì)寄存器占有是動(dòng)態(tài)的寄存器變量對(duì)寄存器占有是動(dòng)態(tài)的有的系統(tǒng)對(duì)寄存器變量轉(zhuǎn)化為有的系統(tǒng)對(duì)寄存器變量轉(zhuǎn)化為 自動(dòng)變量處理自動(dòng)變量處理, ,而有的系統(tǒng)會(huì)而有的系統(tǒng)會(huì) 自動(dòng)設(shè)置寄存器變量自動(dòng)設(shè)置寄存器變量. . C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化

38、程序設(shè)計(jì)函數(shù)整理ppt31三、全局變量的存儲(chǔ)類別三、全局變量的存儲(chǔ)類別全局變量都存放在靜態(tài)的存儲(chǔ)區(qū)。全局變量都存放在靜態(tài)的存儲(chǔ)區(qū)。用用staticstatic關(guān)鍵字聲明的全局變量,只能在本文件內(nèi)使用。關(guān)鍵字聲明的全局變量,只能在本文件內(nèi)使用。沒(méi)有用沒(méi)有用staticstatic關(guān)鍵字的全局變量可以在別的文件中使用關(guān)鍵字的全局變量可以在別的文件中使用externextern關(guān)鍵字聲明為關(guān)鍵字聲明為外部變量外部變量,并在該文件中作為全局變,并在該文件中作為全局變量使用。量使用。盡量少使用全局變量盡量少使用全局變量/* a.c */int max;void calcMax(int a, int n)

39、 ./* main.c */extern int max;void main() . printf(“%d”,max); ./* a.c */static int max;void calcMax(int a, int n) ./* main.c */extern int max;void main() . printf(“%d”,max); .錯(cuò)!max未定義錯(cuò)!不能引用max C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt32四、存儲(chǔ)類別小結(jié)四、存儲(chǔ)類別小結(jié)1 1、變量的定義方法、變量的定義方法 存儲(chǔ)類別存儲(chǔ)類別 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名2 2、變量的

40、劃分、變量的劃分按作用域劃分按作用域劃分: :按生存期按生存期局部變量局部變量全局變量全局變量自動(dòng)變量自動(dòng)變量靜態(tài)變量靜態(tài)變量寄存器變量寄存器變量形式參數(shù)變量形式參數(shù)變量動(dòng)態(tài)存儲(chǔ)動(dòng)態(tài)存儲(chǔ)靜態(tài)存儲(chǔ)靜態(tài)存儲(chǔ)自動(dòng)變量自動(dòng)變量形式參數(shù)形式參數(shù)寄存器變量寄存器變量靜態(tài)局部變量靜態(tài)局部變量全局變量全局變量按變量的存放位置按變量的存放位置動(dòng)態(tài)存儲(chǔ)區(qū)動(dòng)態(tài)存儲(chǔ)區(qū)靜態(tài)存儲(chǔ)區(qū)靜態(tài)存儲(chǔ)區(qū)自動(dòng)變量自動(dòng)變量形式參數(shù)形式參數(shù)靜態(tài)局部變量靜態(tài)局部變量全局變量全局變量寄存器寄存器寄存器變量寄存器變量 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt33自定義的函數(shù)有兩種:內(nèi)部函數(shù)內(nèi)部函數(shù)和外部函數(shù)

41、外部函數(shù)。1內(nèi)部函數(shù)內(nèi)部函數(shù) 若函數(shù)的存儲(chǔ)類型為static型,則稱其為內(nèi)部函數(shù)內(nèi)部函數(shù)(內(nèi)部函數(shù)又稱為靜態(tài)函數(shù)),它表示在由多個(gè)源文件組成的同一個(gè)程序中,該函數(shù)只能在其所在的文件中使用,在其他文件中不可使用。內(nèi)部函數(shù)的聲明形式: static ();例如:例如: static int Statistic ();2外部函數(shù)外部函數(shù) 若函數(shù)的存儲(chǔ)類型定義為extern型,則稱其為外部函數(shù)外部函數(shù),它表示該函數(shù)能被其他源文件調(diào)用。函數(shù)的默認(rèn)存儲(chǔ)類型為extern型。 6.3 內(nèi)部函數(shù)與外部函數(shù) C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt34 外部函數(shù)的應(yīng)用示例。

42、下面的程序由3個(gè)文件組成:、example6_6.c。 在、中分別定義了兩個(gè)外部函數(shù); 在example6_6.c中可以分別調(diào)用這兩個(gè)函數(shù)。1/* 外部函數(shù)定義 */extern int add(int m, int n) return (m+n);2/* 外部函數(shù)定義 */extern int mod(int a, int b) return(a%b); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt353example6_6.c#include extern int mod(int a, int b);/*外部函數(shù)聲明*/extern int add(int

43、 m, int n);/*外部函數(shù)聲明*/main() int x, y, result1,result2,result; printf(Please enter x and y:n); scanf (%d%d, &x, &y); result1=add(x,y);/*調(diào)用file1中的外部函數(shù)*/ printf(x+y=%dn,result1); if (result10) result2=mod(x,y);/*調(diào)用file2中的外部函數(shù)*/ result=result1-result2; printf(mod(x,y)=%dn,result2); printf(x+y)-m

44、od(x,y)=%dn, result); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt36關(guān)于程序的幾點(diǎn)說(shuō)明關(guān)于程序的幾點(diǎn)說(shuō)明(1)在程序、中的函數(shù)定義可以不需要extern加以說(shuō)明,默認(rèn)為外部函數(shù)。(2)在example6_6.c中對(duì)外部函數(shù)的聲明也可以不用extern加以說(shuō)明,默認(rèn)為外部函數(shù)。(3)由多個(gè)源文件組成一個(gè)程序時(shí),main()函數(shù)只能出現(xiàn)在一個(gè)源文件中。(4)由多個(gè)源文件組成一個(gè)程序時(shí),有3種連接方式: 將各源文件分別編譯成目標(biāo)文件,得到多個(gè)目標(biāo)文件(.obj后綴),然后用連接命令把多個(gè).obj文件連接起來(lái)。 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章

45、模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt37建立項(xiàng)目文件(.prj后綴或.dsw后綴),具體操作可參閱各種C語(yǔ)言集成開發(fā)環(huán)境說(shuō)明。使用文件包含命令。請(qǐng)參閱本章6.6節(jié)。(5)如果將或中的extern改成static,則主程序在編譯時(shí)無(wú)法通過(guò)。(6)在程序或中,也可以互相調(diào)用其外部函數(shù)。Turbo c的連接接命令為的連接接命令為tlink 例如:例如:tlink example6_6.obj+ 結(jié)果結(jié)果:生成一個(gè)example6_6.exe文件。 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt38 6.4 編譯預(yù)處理 作用:作用: 在對(duì)源程序編譯之前做一些處

46、理在對(duì)源程序編譯之前做一些處理, ,生成擴(kuò)展生成擴(kuò)展C C源程序源程序 種類種類 宏定義宏定義 #define 文件包含文件包含 #include 條件編譯條件編譯 #if-#else-#endif等等 格式:格式: “#”#”開頭開頭 占單獨(dú)書寫行占單獨(dú)書寫行 語(yǔ)句尾不加分號(hào)語(yǔ)句尾不加分號(hào) C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt39如 #define YES 1 #define NO 0 if(x=YES) printf(“correct!n”); else if (x=NO) printf(“error!n”);展開后: if(x=1) printf

47、(“correct!n”); else if (x=0) printf(“error!n”); 1 宏定義宏定義不帶參數(shù)宏定義不帶參數(shù)宏定義 一般形式一般形式 #define #define 宏名宏名( (標(biāo)識(shí)符標(biāo)識(shí)符) ) 宏體宏體 (字符串)(字符串) 功能功能: :用指定標(biāo)識(shí)符用指定標(biāo)識(shí)符( (宏名宏名) )代替字符序列代替字符序列( (宏體宏體) ) 宏展開:預(yù)編譯時(shí)宏展開:預(yù)編譯時(shí), ,用宏體來(lái)替換宏名用宏體來(lái)替換宏名-不作語(yǔ)法檢查不作語(yǔ)法檢查如 #define YES 1 #define NO 0 #define PI 3.1415926 #define OUT printf(“H

48、ello,World”);說(shuō)明說(shuō)明: :1.1.定義位置定義位置: :任意任意( (一般在函數(shù)外面一般在函數(shù)外面) )2.2.作用域作用域: :從定義命令到文件結(jié)束從定義命令到文件結(jié)束3.3.#undef#undef可終止宏名作用域可終止宏名作用域 格式:格式: #undef #undef 宏名宏名例 #define YES 1 main() . #undef YES #define YES 0 max() . YES原作用域YES新作用域5.5.宏定義可嵌套,不能遞歸宏定義可嵌套,不能遞歸例 #define MAX MAX+10 ()4.4.引號(hào)中的內(nèi)容與宏名相同也不置換引號(hào)中的內(nèi)容與宏名相

49、同也不置換例 #define PI 3.14159 printf(“2*PI=%fn”,PI*2);宏展開:printf(“2*PI=%fn”,3.14159*2);6.6.宏定義中使用必要的括號(hào)宏定義中使用必要的括號(hào)()例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2;宏展開:var= 80+40 *2;( )( )例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2;宏展開: var=WIDTH+40*2 var=80+40*27.7.只是簡(jiǎn)單替代,標(biāo)識(shí)符不占內(nèi)存空間只是

50、簡(jiǎn)單替代,標(biāo)識(shí)符不占內(nèi)存空間8.8.一般宏名使用大寫字母形式一般宏名使用大寫字母形式. . C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt40帶參數(shù)宏定義帶參數(shù)宏定義 一般形式:一般形式: #define #define 宏名宏名( (參數(shù)表參數(shù)表) ) 宏體宏體例 #define S (r) PI*r*r相當(dāng)于定義了不帶參宏S,代表字符串“(r) PI*r*r” 說(shuō)明:說(shuō)明: 1.1.宏展開:不僅宏體替換宏展開:不僅宏體替換, ,還要進(jìn)行還要進(jìn)行形參替換形參替換 2 2. .宏體及各形參外一般應(yīng)加括號(hào)宏體及各形參外一般應(yīng)加括號(hào)()() 3.3.宏名與參數(shù)之間不

51、能有空格宏名與參數(shù)之間不能有空格例 #define S(a,b) a*b . area=S(3,2);宏展開: area=3*2;不能加空格例 #define POWER(x) x*x x=4; y=6; z=POWER(x+y);宏展開:z=x+y*x+y;一般寫成: #define POWER(x) (x)*(x)宏展開: z=(x+y)*(x+y); C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt41#define MAX(x,y) (x)(y)?(x):(y) .main() int a,b,c,d,t; . t=MAX(a+b,c+d); 宏展開:t=

52、(a+b)(c+d)?(a+b):(c+d);int max(int x,int y) return(xy?x:y);main() int a,b,c,d,t; . t=max(a+b,c+d); 4. 用宏定義可以實(shí)現(xiàn)和函數(shù)同樣的功能用宏定義可以實(shí)現(xiàn)和函數(shù)同樣的功能 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt425.帶參的宏與函數(shù)區(qū)別帶參的宏與函數(shù)區(qū)別帶參宏函數(shù)處理過(guò)程不分配內(nèi)存簡(jiǎn)單的字符置換分配內(nèi)存先求實(shí)參值,再代入形參處理時(shí)間編譯前程序運(yùn)行時(shí)參數(shù)類型無(wú)類型問(wèn)題定義實(shí)參,形參類型程序長(zhǎng)度變長(zhǎng)不變運(yùn)行速度不占運(yùn)行時(shí)間調(diào)用和返回占時(shí)間 C語(yǔ)言程序設(shè)計(jì) 第第

53、6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt43 2 文件包含功能:一個(gè)源文件可將另一個(gè)源文件的內(nèi)容全部包含進(jìn)功能:一個(gè)源文件可將另一個(gè)源文件的內(nèi)容全部包含進(jìn)來(lái)來(lái)一般形式:一般形式: #include “#include “文件名文件名” 或或 #include #include #include “”BABA處理過(guò)程:預(yù)編譯時(shí)處理過(guò)程:預(yù)編譯時(shí), ,用被包含文件的內(nèi)容取代該預(yù)處理用被包含文件的內(nèi)容取代該預(yù)處理命令,再對(duì)命令,再對(duì)“包含包含”后的文件作一個(gè)源文件編譯后的文件作一個(gè)源文件編譯 直接按標(biāo)準(zhǔn)目錄搜索(存放C的庫(kù)函數(shù)頭文件)“” 先在當(dāng)前目錄搜索,再搜索標(biāo)準(zhǔn)目錄 可指定路徑 C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt44被包含文件內(nèi)容 源文件(*.c) 頭文件(*.h)宏定義數(shù)據(jù)結(jié)構(gòu)定義函數(shù)說(shuō)明等文件包含可嵌套#include “”AC#include “” BA C語(yǔ)言程序設(shè)計(jì) 第第 6 章章 模塊化程序設(shè)計(jì)函數(shù)模塊化程序設(shè)計(jì)函數(shù)整理ppt45例 文件包含舉例/* powers.h */#define sqr(x) (x)*(x)#define cube(x) (x)*(x)*(x)#define quad(x) (x)*(x)*(x)*(x)#include

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論