C語言函數函數
1、函數操作系統
C語言程序是由函數構成的,每一個函數負責完成一部分的功能,函數將工恩呢該封裝起來,以供程序調用。日誌
2、函數定義編譯器
目的:將一些經常使用的功能封裝起來,以供往後調用。io
步驟:肯定函數名,肯定函數體,調用編譯
格式:返回值類型 函數名(形式參數列表)class
{ 函數體 }變量
3、函數調用數據類型
定義函數須要明肯定的東西:語法
①. 取一個有意義的函數名
②. 肯定函數的形參
③. 編寫函數體
④. 返回值
示例:
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;
}
4、參數
①. 形參:定義函數時,函數名後面的參數 如num1和num2
②. 實參:調用函數時,傳人的具體數據 如a和b
③. 形參和實參的個數必須相等
④. 函數體內部不能定義和形參同名的變量
⑤. 若是是基本的數據類型做爲形參,則是純粹的值傳遞,修改函數內部形參的值並不會影響到實參的值
⑥. 一個函數能夠沒有形參,也能夠有無限個形參
5、函數的返回值
(一)Return 的做用:
①. 退出函數
②. 返回一個具體的值給函數的調用者
(二)返回值使用注意:
①. C語言是弱語法弱類型的語言,很是不嚴格
②. 若是沒有寫清楚返回值的類型,則默認爲int型的
③. Void表明沒有返回值
④. 就算明確聲明瞭返回值類型,也能夠不返回任何的值
⑤. C語言默認狀況下,不容許有兩個同名的函數
6、函數使用注意
①. 默認不容許函數重名
②. 函數之間是平等的,不可以嵌套定義
③. 函數不能夠重複定義,可是能夠重複聲明,只要是在調用前聲明就能夠,地方隨便
④. 函數若是是隻要聲明沒有定義,那麼編譯能夠成功,但連接時會失效
7、多人協做
#include<.stdio.h>是一個系統頭文件。
#include<abc.txt>至關於把abc.txt文件中的所用內容以純文本的方式拷貝到當前位置。
「」表示文件與.c文件處於同一路徑,可使用相對路徑也可使用絕對路徑。左邊有/的是絕對路徑,沒有/則爲相對路徑。
注意:自定義的文件使用「」,系統文件使用<>。
函數若是在調用時,函數定義在調用以後,且前面沒有進行相應的聲明,則編譯器報錯;
調用函數,沒有函數聲明,編譯器不會報錯,連接時報錯,不定義函數反而不報錯。
連接:把項目中因此相關的.o目標文件和c語言的函數庫合併在一塊兒,生成可執行文件。
一般:
①. 函數的定義放在.c文件中,函數的聲明放在.h文件中
②. 若是要是有某個.c文件中定義的函數,只須要包含.c文件對應的.h文件便可
③. .h文件生下來就是打醬油被別人拿來拷貝包含的,編譯連接時不用寫出
8、補充
(1)main函數的返回值是返回給操做系統的,0爲正常退出,其餘值爲非正常退出。用以進行系統日誌,其實它返回任何值對程序自己沒有影響,僅僅只是標記
(2)Printf函數的返回值爲字符數。如printf(「abc」);則返回值爲3,若printf(「abc男\n」);的返回值爲7,由於一箇中文佔3個字符。