跟調(diào)用庫函數(shù)一樣,只不過這個(gè)自定義函數(shù)得你自己寫,
成都創(chuàng)新互聯(lián)長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西豐企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,西豐網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
如果自定義函數(shù)在main()函數(shù)之后定義的話,,就得在main()前先聲明,main()中調(diào)用,main()后定義,如下簡(jiǎn)易代碼:
#includestdio.h
void print(); //用戶自定義函數(shù)聲明
void main()
{
print(); //用戶自定義函數(shù)調(diào)用
}
void print() //用戶自定義函數(shù)定義
{
printf("函數(shù)已經(jīng)被調(diào)用\n");
}
如果自定義函數(shù)在main()之前已定義,則只需要進(jìn)行main()前定義,和main()中調(diào)用了,簡(jiǎn)單代碼如下:
#includestdio.h
void print() //用戶自定義函數(shù)定義
{
printf("函數(shù)已經(jīng)被調(diào)用\n");
}
void main()
{
print(); //用戶自定義函數(shù)調(diào)用
}
有些自定義函數(shù)可能會(huì)被頻繁的調(diào)用,所以寫在一個(gè)C文件里是不太方便的。應(yīng)該把這些自定義的函數(shù)寫在一個(gè)C文件里,同時(shí)在一個(gè)頭文件.h文件里聲明。主函數(shù)可以通過引用該頭文件然后調(diào)用需要的自定義函數(shù)。
舉例如下:
1. 在頭文件(.h)里聲明自定義函數(shù),定義用戶寫的函數(shù);
2. 在一個(gè)C語言文件里寫下自定義函數(shù)的實(shí)現(xiàn)方式,可以寫在主函數(shù)前,也可在主函數(shù)后(需在頭文件前聲明函數(shù));
3. 在主函數(shù)中調(diào)用自定義函數(shù),別忘了頭文件的聲明;
4. 最后編譯所有的涉及到的C文件;
#include stdio.h
void number(int);
int main()
{
for(int i = 0;i10;i++)
{
number(i);
可以調(diào)用多個(gè)函數(shù),沒有限制,除了main函數(shù)不可以調(diào)用。還有就是,它自己也可以調(diào)用自己。
也可以調(diào)用一些庫函數(shù),比如“max(int,int)”,總之,除了main不可以,其他的都可以。
不過在調(diào)用之前記得要聲明。
定義一個(gè)函數(shù)我們需要確定以下內(nèi)容:
1、函數(shù)的返回值類型
2、函數(shù)的名稱
3、函數(shù)的參數(shù)
4、函數(shù)主體代碼塊
示例代碼:
int definePlus(int a, int b)
{
a = a + 1;
b = b + 1; ??
return a + b;
}
例如上面代碼中就定義了一個(gè)返回值為int類型的函數(shù),其函數(shù)名為definePlus,一對(duì)小括號(hào)中的內(nèi)容為這個(gè)函數(shù)的參數(shù),也就是說這個(gè)函數(shù)有兩個(gè)傳入?yún)?shù)int a和int b。
在函數(shù)體內(nèi),分別讓a在原來的基礎(chǔ)上加1,讓b在原來的基礎(chǔ)上加1,然后使用return關(guān)鍵字返回a + b的和。如果a的值是2,而b的值是3,那么這個(gè)函數(shù)的返回值則是7。
擴(kuò)展資料
函數(shù)的調(diào)用與聲明
如果函數(shù)的定義是在調(diào)用函數(shù)的后面則需要在調(diào)用之前聲明函數(shù)的定義,否則不需要事先聲明。聲明的意思是告訴編譯器,這個(gè)函數(shù)的返回值類型、函數(shù)名和參數(shù)。
在調(diào)用一個(gè)函數(shù)時(shí),需要向這個(gè)函數(shù)傳其需要的參數(shù),例如a和b這兩個(gè)變量,并可以指定另一個(gè)變量用于接收這個(gè)函數(shù)執(zhí)行后的返回值,比如變量c就接收了函數(shù)wrongplus()的返回值,結(jié)果為7。
但是我們看到程序的運(yùn)行結(jié)果是?2 + 3 = 7,也就是說,執(zhí)行了函數(shù)wrongplus()后,我們雖然對(duì)函數(shù)內(nèi)的參數(shù)變量分別加1,但主函數(shù)main中的a和b的值并沒有發(fā)生變化。示例代碼:
#include stdio.h
main()
{
int a = 2, b = 3;
int c;
int wrongplus(int a, int b);
c = wrongplus(a, b);
printf("%d + %d = %d\n",a, b, c);
}
int wrongplus(int a, int b){
a = a + 1;
b = b + 1; ??
return a + b;
}
2 + 3 = 7