指向函数的指针
void scheduleOnce | ( | 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);
}
其实挺简单的。
关于函数指针的理解
指针就是指向内存的索引。
代码和数据一样,也存在内存里面,函数也有地址,所以指针能指向函数,一点也不奇怪。
那么函数指针定义是为什么需要 定义参数和返回值, 这是保证函数指针能正确的匹配函数。