嵌入式功能指针

Jam*_*mes 1 c syntax function-pointers

我在理解此特定声明时遇到了麻烦:

void (*signal(int, void (*fp)(int)))(int);

我以前对函数指针的理解是,方括号中的第一项是函数指针的名称。

例如 int (*MySuperDuperNameForASimpleAddFunction)(int, int);

我不明白除了第一个括号中的标识符外,还有什么可能。

Que*_*tin 5

void (*signal(int, void (*fp)(int)))(int);
Run Code Online (Sandbox Code Playgroud)

signal 是一个函数,采用:

  • 一个整数
  • 一个带int并返回void的函数指针

...并返回采用int并返回void的函数指针。ew