函数指针

函数指针:


定义:它是指向函数的指针,用来存储函数的地址。


语法定义:返回类型 (*函数指针名)(参数列表)如 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()被调方使用即可,

         而不必关心被调用的内部实现,以后求和,求乘只需根据自己的需要传对应的回调函数

         就可以了

}


你可能感兴趣的:(函数指针)