函数调用语法

sto*_*304 0 c func

我正在分析一个C程序,我发现这里有一个奇怪的函数调用函数定义:

static void endSignal (int32_t dummy)
{
  if (nTerminating) return;
  nTerminating=1;
  printf("terminating....\n");
  terminateDLNAsystem();
  sleep(1);
  exit (0);
}
Run Code Online (Sandbox Code Playgroud)

该函数采用int32_t参数!现在这个调用"endSignal"的主函数

int32_t main (int32_t argc, char **argv)
{
/*Statements
.
.
*/
signal(SIGINT, endSignal);
signal(SIGABRT, endSignal);
signal(SIGQUIT, endSignal);
signal(SIGTERM, endSignal);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

主函数调用endSignal没有任何参数,在这种情况下会发生什么?

til*_*z0R 6

主函数调用signal函数而不是endSignal.

endSignal 是作为回调的参数.

这是将函数指针作为参数传递.

如何在C中将函数作为参数传递?