Bonjour,

Dans ce prototype,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
       int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                          void *(*start_routine) (void *), void *arg);
Je ne comprends pas la syntaxe de l'argument void *(*start_routine) (void *)

Cet argument muet est de type void *. Le nom de l'argument (*start_routine) (void *) n'a aucune importance, est purement indicatif et c'est lui que je ne comprends pas.

(start_routine *) (void *) aurait pour moi signifier un cast d'un argument void * en *start_routine.
Mais le fait d'avoir (*start_routine), soit * en premier est une forme que je n'ai jamais rencontré pour un cast de pointeur de forme générique (type *). Est-ce que (* type) serait équivalent à (type *) ?

Bref c'est très étrange pour moi. Merci pour vos lumière.