函数的签名是什么,它接受函数指针并返回函数指针?

时间:2011-05-24 14:52:22

标签: c function pointers


我想知道函数的签名是什么,它接受一个函数指针并返回一个函数指针?

谢谢,

3 个答案:

答案 0 :(得分:5)

E.g:

void (*f(void (*)(void)))(void)

...使用typedefs更容易阅读:

typedef void (*VoidFunctionPointer)(void);
VoidFunctionPointer f(VoidFunctionPointer);

答案 1 :(得分:1)

最简单的方法是使用typedef:

typedef int(*int_fn_ptr)(int);

int_fn_ptr my_func(int_fn_ptr f);

免责声明:我无法验证此处是否存在拼写错误。

答案 2 :(得分:0)

您需要更好地定义作为参数和返回类型的函数指针 无论如何,这是一个简单函数的例子。

#include <stdio.h>
#include <stdlib.h> /* abs */

typedef int fx(int);

/* foo takes a function pointer and returns a function pointer */
fx *foo(fx *bar) {
  if (bar) return bar;
  return NULL;
}

int main(void) {
  fx *(*signature)(fx *) = foo;        /* signature points to foo */
  if (signature(abs)) printf("ok\n");
  return 0;
}