一行瑞、函數(shù)的三要素:定義餐禁、聲明、調(diào)用
- 函數(shù)定義就是函數(shù)體帮非、函數(shù)聲明就是函數(shù)原型、函數(shù)調(diào)用就是使用函數(shù)筑舅。
- 函數(shù)定義是函數(shù)的根本陨舱,函數(shù)定義只的函數(shù)名表示函數(shù)在內(nèi)存中的首地址翠拣,可以用函數(shù)名調(diào)用執(zhí)行這個(gè)函數(shù)(實(shí)質(zhì)是指針解引用訪問)游盲。函數(shù)中定義的函數(shù)體是函數(shù)執(zhí)行的關(guān)鍵,函數(shù)執(zhí)行時(shí)主要就是執(zhí)行函數(shù)體优烧,所以函數(shù)沒有定義就是無稽之談链峭。
- 函數(shù)聲明的作用就是告訴編譯器函數(shù)的原型畦娄。
- 函數(shù)的調(diào)用就是調(diào)用執(zhí)行一個(gè)函數(shù)弊仪,函數(shù)調(diào)用可以反復(fù)使用。
#include <stdio.h>
int add(int a,int b);
int main(void)
{
printf("3+5=%d.\n",add(3,5)); //add函數(shù)的返回值作為了printf函數(shù)的參數(shù)了
}
//函數(shù)體(函數(shù)的定義)
int add(int a,int b) //函數(shù)名驳癌、參數(shù)列表役听、返回值
{
return a+b; //函數(shù)體
}
二、函數(shù)原型和作用
- 函數(shù)原型就是函數(shù)的聲明典予,說白了就是函數(shù)的函數(shù)名、返回值瘤袖、參數(shù)列表。
- 函數(shù)原型的主要作用是給編譯器提供原型艾扮,讓編譯器在編譯程序時(shí)幫我們做參數(shù)的靜態(tài)類型檢查既琴。
- 編譯器在編譯程序時(shí)是以單個(gè)源文件為單位的泡嘴。而且編譯器工作時(shí)已經(jīng)經(jīng)過預(yù)處理了,編譯器編譯文件時(shí)是按照文件中語句的先后順序執(zhí)行的
- 編譯器從源文件的第一行開始編譯填物,遇到函數(shù)聲明時(shí)就會(huì)收到函數(shù)聲明表中霎终,然后繼續(xù)向后找。當(dāng)遇到一個(gè)函數(shù)調(diào)用時(shí)莱褒,就在本文件的函數(shù)聲明中去查這個(gè)函數(shù)涎劈,看有沒有原型相對應(yīng)的函數(shù),這個(gè)原型相對應(yīng)的函數(shù)有且只有一個(gè)蛛枚。
- 函數(shù)可以重復(fù)聲明,但不能重復(fù)定義蹦浦。
三、函數(shù)傳參
- 傳參的類型個(gè)數(shù)要匹配侥袜。
- 傳參的個(gè)數(shù)較多的時(shí)候溉贿,打包成結(jié)構(gòu)體傳入枫吧。
- const修飾傳參宇色。