函数调用语法

Function call syntax

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

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

这个函数需要一个 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;
}

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

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

endSignal 是作为回调的参数。

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

How do you pass a function as a parameter in C?