函數指針:
定義:它是指向函數的指針,用來存儲函數的地址。
語法定義:返回類型 (*函數指針名)(參數列表)如 int (*pFunc)(int ,int )
注:與聲明普通變量一樣,擁有聲明類型(int (*)(int ,int))
變量名(pFunc);
也可以給定一個初值pFunc = Null;
函數指針的typedef;
基本數據類型的typedef( typedef int Integer),這時Integer a = 5與 int a = 5是等郊的
函數指針typedef(typedef int (*新類型名)(參數表)) ,這時可以用 新類型名 = 函數名;了
回調函數:它是一個函數,它由調用方自己實現,供被調方使用的函數
eg:
int sum(int a,int b)
{
return a + b;
}
int sub(int a,int b)
{
return a * b;
}
int getValue(int x,int y)
{
return sum(x,y);//如果我們要求函數的sub(x,y),則又要改這個函數的函數實現,不方便。
}
爲了讓我們不用改函數的實現,則可以利用回調函數的寫法
typedef int (*pFunc)(int ,int ) 先定義一個函數指針pFunc
int getValue(int x,int y ,pFunc p)
{
return p(x,y);
}
int main()
{
int a = getValue(3,5 sum);
int a = getValue(3,5,sub)
// 函數調用時,我們只需要將這個sum回調自己實現,供getValue()被調方使用即可,
而不必關心被調用的內部實現,以後求和,求乘只需根據自己的需要傳對應的回調函數
就可以了
}