我想知道函数的签名是什么,它接受一个函数指针并返回一个函数指针?
谢谢,
森
答案 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;
}