C 如何使用与函数具有相同签名的参数声明函数?
我怎样才能声明一个函数,它将函数指针作为参数,指向一个与函数具有相同签名的函数 在gcc中,不起作用的是C 如何使用与函数具有相同签名的参数声明函数?,c,C,我怎样才能声明一个函数,它将函数指针作为参数,指向一个与函数具有相同签名的函数 在gcc中,不起作用的是 foo_t * f(bar_t const *, typeof(f) *); 或 如果可能的话,我不想强制转换为void*并返回。您可以使用前向声明的结构来中断类型递归(这大致类似于C++中的函子或可调用对象) struct-Func; typedef foo_t*(*Func)(bar_t const*b,struct Func*); 结构Func{Func被调用方;}; foo_t*f
foo_t * f(bar_t const *, typeof(f) *);
或
如果可能的话,我不想强制转换为void*并返回。您可以使用前向声明的结构来中断类型递归(这大致类似于C++中的函子或可调用对象)
struct-Func;
typedef foo_t*(*Func)(bar_t const*b,struct Func*);
结构Func{Func被调用方;};
foo_t*f(bar_t const*b,结构函数*Func){
Func nextfunc={f};
return func->callee(b,nextfunc);/*听起来签名是无限递归的
typedef foo_t (* f_t)(bar_t const *, f_t);
f_t f;
struct Func;
typedef foo_t *(*FuncFunc)(bar_t const *b, struct Func *);
struct Func { FuncFunc callee; };
foo_t * f(bar_t const *b, struct Func *func) {
Func nextfunc = { f };
return func->callee(b, nextfunc); /* <-- infinite recursion */
}