指向函数的指针

 

void scheduleOnce

(

SEL_SCHEDULE 

selector,

  

float 

delay 

 

)

  

就是在delay秒以后执行selector函数

此处的SEL_SCHEDULE就是一个函数指针类型

typedef void(Ref::* SEL_SCHEDULE)(float)

 

函数指针的声明与使用

C++Primer上的例子

bool (*pf)(const string &, const string &);

这样 pf 就是一个 返回bool类型 参数是两个 const string &的形参 函数指针

 

其实这个定义并不太陌生

我们以前会在main函数前 先声明一些函数,然后在main函数后面才实现。

void printInt(int);

int main(){

    printInt(5);

    return 0;

}

void printInt(int n){

    printf("%d\n",n);

}

 

这里的函数定义处 其实就定义了一个 void (*)(int) 类型的指针

 

现在

void printInt(int);

 

int main(){

void (*ppp)(int);

    ppp = printInt;

    ppp(5);

    return 0;

}

void printInt(int n){

    printf("%d\n",n);

}

其实挺简单的。

 

关于函数指针的理解

指针就是指向内存的索引。

代码和数据一样,也存在内存里面,函数也有地址,所以指针能指向函数,一点也不奇怪。

那么函数指针定义是为什么需要 定义参数和返回值, 这是保证函数指针能正确的匹配函数。

posted @ 2014-10-28 04:39  月月鸟在前进  阅读(393)  评论(0编辑  收藏  举报