Salut,

je suis en train d'utiliser d'intercepter des signaux dans un programme via la fonction signal (de signal.h). J'ai compris son utilité (et son utilisation), mais je ne comprends pas vraiment sa syntaxe:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
void (*signal(int sig, void (*func)(int)))(int)
J'ai mon idée sur le sujet, mais je suis incapable de l'exprimer en prose (ni en vers ). En gros, ce que je comprends c'est:
-> signal(int sig, void (*func)(int))) : signal prend comme paramètre un int "sig" et une fonction de type void (qui prend à son tour un int): on met le * devant func, car les fonctions sont en fait des adresses, juste ?
-> void (*signal(...))(int)

Ca, je comprends pas trop par contre: je ne comprends pas ce que vient faire le (int) à la fin, ni même le pointeur devant signal...





Merci