天天看點

C語言函數

c語言函數

一、函數

c語言程式是由函數構成的,每個函數負責完成一部分的功能,函數将工恩呢該封裝起來,以供程式調用。

二、函數定義

目的:将一些常用的功能封裝起來,以供日後調用。

步驟:确定函數名,确定函數體,調用

格式:傳回值類型 函數名(形式參數清單)

{ 函數體 }

三、函數調用

定義函數需要明确定的東西:

①. 取一個有意義的函數名

②. 确定函數的形參

③. 編寫函數體

④. 傳回值

示例:

int average(int num1,int num2)

{

return (num1+num2)/2;

}

int main()

int a=1;

int b=3;

int c=average(a,b); //調用函數

return 0;

四、參數

①. 形參:定義函數時,函數名後面的參數 如num1和num2

②. 實參:調用函數時,傳人的具體資料 如a和b

③. 形參和實參的個數必須相等

④. 函數體内部不能定義和形參同名的變量

⑤. 如果是基本的資料類型作為形參,則是純粹的值傳遞,修改函數内部形參的值并不會影響到實參的值

⑥. 一個函數可以沒有形參,也可以有無限個形參

五、函數的傳回值

(一)return 的作用:

①. 退出函數

②. 傳回一個具體的值給函數的調用者

(二)傳回值使用注意:

①. c語言是弱文法弱類型的語言,非常不嚴格

②. 如果沒有寫清楚傳回值的類型,則預設為int型的

③. void代表沒有傳回值

④. 就算明确聲明了傳回值類型,也可以不傳回任何的值

⑤. c語言預設情況下,不允許有兩個同名的函數

六、函數使用注意

①. 預設不允許函數重名

②. 函數之間是平等的,不能夠嵌套定義

③. 函數不可以重複定義,但是可以重複聲明,隻要是在調用前聲明就可以,地方随便

④. 函數如果是隻要聲明沒有定義,那麼編譯可以成功,但連結時會失效

七、多人協作

#include<.stdio.h>是一個系統頭檔案。

#include<abc.txt>相當于把abc.txt檔案中的所用内容以純文字的方式拷貝到目前位置。

“”表示檔案與.c檔案處于同一路徑,可以使用相對路徑也可以使用絕對路徑。左邊有/的是絕對路徑,沒有/則為相對路徑。

注意:自定義的檔案使用“”,系統檔案使用<>。

函數如果在調用時,函數定義在調用之後,且前面沒有進行相應的聲明,則編譯器報錯;

調用函數,沒有函數聲明,編譯器不會報錯,連結時報錯,不定義函數反而不報錯。

連結:把項目中是以相關的.o目标檔案和c語言的函數庫合并在一起,生成可執行檔案。

通常:

①. 函數的定義放在.c檔案中,函數的聲明放在.h檔案中

②. 如果要是有某個.c檔案中定義的函數,隻需要包含.c檔案對應的.h檔案即可

③. .h檔案生下來就是打醬油被别人拿來拷貝包含的,編譯連結時不用寫出

八、補充

(1)main函數的傳回值是傳回給作業系統的,0為正常退出,其他值為非正常退出。用以進行系統日志,其實它傳回任何值對程式本身沒有影響,僅僅隻是标記

(2)printf函數的傳回值為字元數。如printf(“abc”);則傳回值為3,若printf(“abc男\n”);的傳回值為7,因為一個中文占3個字元。

繼續閱讀