函数调用语法
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?
我正在分析一个 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?