- 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

一、函數(shù)
C語言程序是由函數(shù)構(gòu)成的,每個(gè)函數(shù)負(fù)責(zé)完成一部分的功能,函數(shù)將工能封裝起來,以供程序調(diào)用。
二、函數(shù)定義
目的:將一些常用的功能封裝起來,以供日后調(diào)用。
步驟:確定函數(shù)名,確定函數(shù)體,調(diào)用
格式:返回值類型 函數(shù)名(形式參數(shù)列表)
{
函數(shù)體
}```
####三、函數(shù)調(diào)用
> - 定義函數(shù)需要明確定的東西:
>①. 取一個(gè)有意義的函數(shù)名
>②. 確定函數(shù)的形參
>③. 編寫函數(shù)體
>④. 返回值
//示例:
int average(int num1,int num2)
{
Return (num1+num2)/2;
}
int main()
{
int a=1;
int b=3;
int c=average(a,b); //調(diào)用函數(shù)
return 0;
}```
四、參數(shù)
①. 形參:定義函數(shù)時(shí),函數(shù)名后面的參數(shù) 如num1和num2
②. 實(shí)參:調(diào)用函數(shù)時(shí),傳人的具體數(shù)據(jù) 如a和b
③. 形參和實(shí)參的個(gè)數(shù)必須相等
④. 函數(shù)體內(nèi)部不能定義和形參同名的變量
⑤. 如果是基本的數(shù)據(jù)類型作為形參,則是純粹的值傳遞,修改函數(shù)內(nèi)部形參的值并不會影響到實(shí)參的值
⑥. 一個(gè)函數(shù)可以沒有形參,也可以有無限個(gè)形參
五、函數(shù)的返回值
- (一)Return 的作用:
①. 退出函數(shù)
②. 返回一個(gè)具體的值給函數(shù)的調(diào)用者
- (二)返回值使用注意:
①. C語言是弱語法弱類型的語言,非常不嚴(yán)格
②. 如果沒有寫清楚返回值的類型,則默認(rèn)為int型的
③. Void代表沒有返回值
④. 就算明確聲明了返回值類型,也可以不返回任何的值
⑤. C語言默認(rèn)情況下,不允許有兩個(gè)同名的函數(shù)
六、函數(shù)使用注意
①. 默認(rèn)不允許函數(shù)重名
②. 函數(shù)之間是平等的,不能夠嵌套定義
③. 函數(shù)不可以重復(fù)定義,但是可以重復(fù)聲明,只要是在調(diào)用前聲明就可以,地方隨便
④. 函數(shù)如果是只要聲明沒有定義,那么編譯可以成功,但鏈接時(shí)會失效
七、多人協(xié)作
#include<.stdio.h>是一個(gè)系統(tǒng)頭文件。
#include<abc.txt>相當(dāng)于把a(bǔ)bc.txt文件中的所用內(nèi)容以純文本的方式拷貝到當(dāng)前位置。
“”表示文件與.c文件處于同一路徑,可以使用相對路徑也可以使用絕對路徑。左邊有/的是絕對路徑,沒有/則為相對路徑。
注意:自定義的文件使用“”,系統(tǒng)文件使用<>。
函數(shù)如果在調(diào)用時(shí),函數(shù)定義在調(diào)用之后,且前面沒有進(jìn)行相應(yīng)的聲明,則編譯器報(bào)錯(cuò);
調(diào)用函數(shù),沒有函數(shù)聲明,編譯器不會報(bào)錯(cuò),鏈接時(shí)報(bào)錯(cuò),不定義函數(shù)反而不報(bào)錯(cuò)。
鏈接:把項(xiàng)目中所以相關(guān)的.o目標(biāo)文件和c語言的函數(shù)庫合并在一起,生成可執(zhí)行文件。
-
通常:
①. 函數(shù)的定義放在.c文件中,函數(shù)的聲明放在.h文件中
②. 如果要是有某個(gè).c文件中定義的函數(shù),只需要包含.c文件對應(yīng)的.h文件即可
③. .h文件生下來就是打醬油被別人拿來拷貝包含的,編譯鏈接時(shí)不用寫出
八、補(bǔ)充
(1)main函數(shù)的返回值是返回給操作系統(tǒng)的,0為正常退出,其他值為非正常退出。用以進(jìn)行系統(tǒng)日志,其實(shí)它返回任何值對程序本身沒有影響,僅僅只是標(biāo)記
(2)Printf函數(shù)的返回值為字符數(shù)。如printf(“abc”);則返回值為3,若printf(“abc男\(zhòng)n”);的返回值為7,因?yàn)橐粋€(gè)中文占3個(gè)字符。