Difficulté à comprendre un prototype (fonction signal())

Résolu
Bonjour,

J'aurais besoin d'une indication concernant la fonction signal dont le prototype donné par le man est :
void (*signal(int sig, void (*func)(int)))(int);


Quelle différence avec ceci?
void signal(int sig, void (*func)(int));


Je ne comprends pas l'ajout du (int) à la fin ni la mise sous forme d'un pointeur sur fonction.
Pouvez-vous éclairer ma lanterne je vous prie?

En revanche j'ai bien compris le deuxième argument (func).
Merci d'avance pour votre aide!

Cordialement.
Orinym

1 réponse

  1. Contributeur
    Bonjour,

    Le premier prototype n'est pas celui de signal mais le prototype d'un pointeur de fonction sur signal.

    Le second est bien le prototype de signal.

    Cdlt,
    1. Entendu, merci! :)