Ich bin ein C-Programm analysiert, in der ich eine seltsame fucntion Anruf hier finden, ist die Funktionsdefinition:Funktionsaufruf Syntax
static void endSignal (int32_t dummy)
{
if (nTerminating) return;
nTerminating=1;
printf("terminating....\n");
terminateDLNAsystem();
sleep(1);
exit (0);
}
Diese Funktion nimmt einen int32_t Parameter! Nun ist diese die wichtigste Funktion „endSignal“
int32_t main (int32_t argc, char **argv)
{
/*Statements
.
.
*/
signal(SIGINT, endSignal);
signal(SIGABRT, endSignal);
signal(SIGQUIT, endSignal);
signal(SIGTERM, endSignal);
return 0;
}
die Hauptfunktionsaufruf endSignal ohne Parameter aufrufen, was in diesem Fall passieren?
Es ruft nicht 'endSignal', übergibt er die Funktion als Parameter an eine andere Funktion. – StoryTeller
Der 'Haupt'-Prototyp ist nicht standardkonform, BTW; 'main' sollte' int' zurückgeben und das erste Argument sollte 'int' sein; Dies ist in Ihrer Frage eine "andere Implementierung definiert". –