假设我有一个指向名为foo
的函数的指针。我现在如何运行它指向的函数?
答案 0 :(得分:9)
如果你的功能有以下签名:
void foo(int x);
您已定义以下指针:
void (*ptr)(int) = foo;
您可以通过“ptr”执行foo,如下所示:
ptr(12); //actually calls foo(12);
答案 1 :(得分:4)
与运行任何其他功能的方式相同:
foo();
答案 2 :(得分:2)
假设您的函数指针为fp
。
void (*fp)(int);
您有两种方法可以从函数指针调用该函数:
fp(3);
或
(*fp)(3);
这两种方式是等价的,但两者都有其优点。在第二种形式中,它向读者明确说明程序中没有名为fp
的函数,但fp
是一个函数指针。