这个语句代表什么 [func ptr]
what does this statement represent [func ptr]
我遇到了一个奇怪的函数指针,
void * (*f1(void(*f2)(void)))(int ) ;
这里的f1
代表什么?
T (*f(U))(V)
将 f
声明为一个函数,它接受一个 U
和 returns 一个指向从 V
到 T
的函数的指针(即 T (*)(V)
).
所以 f1
是一个接受 void (*)(void)
和 returns 的函数 void* (*)(int)
.
命名类型使其更具可读性:
typedef void (*parameter)();
typedef void* (*result)(int);
result f1(parameter f2);
(名称 "f2" 除了帮助阅读代码的人解释它之外没有任何用处。)
我遇到了一个奇怪的函数指针,
void * (*f1(void(*f2)(void)))(int ) ;
这里的f1
代表什么?
T (*f(U))(V)
将 f
声明为一个函数,它接受一个 U
和 returns 一个指向从 V
到 T
的函数的指针(即 T (*)(V)
).
所以 f1
是一个接受 void (*)(void)
和 returns 的函数 void* (*)(int)
.
命名类型使其更具可读性:
typedef void (*parameter)();
typedef void* (*result)(int);
result f1(parameter f2);
(名称 "f2" 除了帮助阅读代码的人解释它之外没有任何用处。)