c++的函数指针怎么写?

来源:百度知道 编辑:UC知道 时间:2024/05/28 10:50:01
c++的函数指针怎么写?
最好能够给个恰当的例子!
外加一些注释那就更好了!
如果能够给一些知识的扩展,那就更好了!
一旦一个函数被调用,通过这个函数的指针检测到了有人调用这个函数,从而作出相应的反应!
你们回答的很好,希望能够更好,更的话,我可以加分!

如:
有一函数
void fun(void);//这是fun函数的声明
fun(){};//这是fun函数的调用
fun;//当只是函数的名字的时候就代表着函数入口的地址

这样,我们可以通过定义一个指针,然后使这个指针指向函数的入口,这样,我么就可以间接调用函数了。

具体例子
int main()
{void (*p)(int n);//声明函数指针的时候,参数的个数和类型必须和被指向的函数相同
void fun(int a);
p=fun;//指针p指向fun,fun是地址,正确
(*p)(0);//通过指针调用函数,与p();等价其中0是作为函数的参数
return 0;}

void fun(int a)
{}

因为函数的调用是需要一定的开销的,当一个函数经常被调用的时候,如果函数只有几行,这样我们可以通过inline函数来解决函数调用开销的问题。
但是如果函数有很多行且经常调用,那么,我们可以通过函数指针来解决函数调用开销的问题

typedef void(*LPFUNCTION1) (bool,bool);
LPFUNCTION1 func;

void function( bool b1, bool b2);

func = function;

是不是返回值是指针的函数;
如果是这个,简单;
函数名前面写上你要得到的指针类型,
函数体内,操作自己搞定,注意最后
return后面是你要返回的指针

前面几位兄弟们已经说的很清楚的了,不过对于你对问题的补充不是太明白你的意思,其实想做成那样你可以做一个互斥量就可以了,调用是检查一下互斥量,如果有人用就不调用,有没有占用就锁上后在调用函数,用完的解锁就可以了。
不知道你是这个意思不。