#include 纖橡察stdio.h
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供三江侗網(wǎng)站建設(shè)、三江侗做網(wǎng)站、三江侗網(wǎng)站設(shè)計(jì)、三江侗網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、三江侗企業(yè)網(wǎng)站模板建站服務(wù),十余年三江侗做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
#define TYPE int
// 下面是加減乘除 4 個(gè)函數(shù)
TYPE add(TYPE a, TYPE b){return a+b;}
TYPE sub(TYPE a, TYPE b){return a-b;}
TYPE muti(TYPE a, TYPE b){return a*b;}
TYPE div(TYPE a, TYPE b){return a/b;}
int main(int argc, char *argv[])
{
// 函數(shù)指針數(shù)組,一共有 4 四個(gè)元素,分別是:
// 加減乘除 4 個(gè)函數(shù)的函數(shù)指針
// 你可以自己再添加其他函數(shù),而不毀茄用修改代碼。
TYPE (*functions[])(TYPE, TYPE) = {add,sub,muti,div};
// 函數(shù)指針數(shù)組中的元素個(gè)數(shù),這里是 4 個(gè)。
unsigned int n = sizeof(functions)/sizeof(functions[0]);
// 要進(jìn)行運(yùn)算的數(shù)字
TYPE a = 10, b = 5 , result;
int i=0;
for(i=0; in; i++)
{// 調(diào)用函數(shù)指針數(shù)組如絕里面的所有函數(shù)。
result = functions[i](a,b);
printf("%d\n", result);
}
return 0;
}
如果是在C#中的話,用委托進(jìn)行多播,既可罩肢以同時(shí)指向多個(gè)函數(shù),觸發(fā)該事件時(shí),同時(shí)調(diào)用所有函數(shù)。事件是該物衡世委托的一個(gè)特例。
如果是C語(yǔ)言的話,函數(shù)指針可以指向任何簽名和函攔搜數(shù)指針定義一致的任何函數(shù)。簽名指的是參數(shù)列表和參數(shù)類(lèi)型以及返回參數(shù)類(lèi)型,必須嚴(yán)格一致。
c語(yǔ)言中叫做回旁枝調(diào)函數(shù),將函數(shù)指針(如max)作者銀為函數(shù)的參數(shù),函數(shù)(如fun)中調(diào)用這個(gè)參數(shù)指向的函數(shù),
調(diào)用函數(shù)(fun)時(shí)看情運(yùn)嫌敏況而給函數(shù)傳入不同的函數(shù)指針
例如fun(a,b,min),那么fun函數(shù)調(diào)用執(zhí)行三個(gè)參數(shù)就調(diào)用min函數(shù)
參數(shù)的定義要與傳入的函數(shù)指針相匹配
例如fun(int,x,int y,(*p)(int,int)) 那么調(diào)用fun(a,b,min)時(shí),min的參數(shù)必須是(int ,int)