这句话代表什么[func ptr]

时间:2015-09-24 04:56:28

标签: c++ function-pointers

我遇到了一个奇怪的函数指针,

void * (*f1(void(*f2)(void)))(int ) ; 

f1代表什么?

1 个答案:

答案 0 :(得分:4)

T (*f(U))(V)

f声明为一个函数,它接受U并返回指向VT的函数的指针(即T (*)(V))。< / p>

所以f1是一个接受void (*)(void)并返回void* (*)(int)的函数。

命名类型使其更具可读性:

typedef void (*parameter)();
typedef void* (*result)(int);
result f1(parameter f2);

(名称&#34; f2&#34;除了帮助人类阅读代码解释它之外没有任何意义。)