函數指針

函數指針:


定義:它是指向函數的指針,用來存儲函數的地址。


語法定義:返回類型 (*函數指針名)(參數列表)如 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()被調方使用即可,

         而不必關心被調用的內部實現,以後求和,求乘只需根據自己的需要傳對應的回調函數

         就可以了

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章