S'il vous plaît mettre en évidence la différence entre les déclarations de fonctions suivantes:Expliquer la différence dans ces déclarations de pointeur de fonction
void (*p) (void *a[], int n)
void *(*p[]) (void *a, int n)
S'il vous plaît mettre en évidence la différence entre les déclarations de fonctions suivantes:Expliquer la différence dans ces déclarations de pointeur de fonction
void (*p) (void *a[], int n)
void *(*p[]) (void *a, int n)
void (*p) (void *a[], int n)
définit un pointeur vers une fonction qui prend un tableau void*
et un int
en tant que paramètre
void *(*p[]) (void *a, int n)
définit un tableau de pointeurs de fonctions qui retournent un void*
, et prendre un void*
et un int
comme paramètre.
Ni sont des déclarations de fonction, donc il n'y a rien expliquer.
Les deux sont, cependant, des déclarations de pointeurs de fonction. Il y a un excellent tutorial website que vous devriez consommer.
Je devrais également suggérer le programme pratique cdecl
(ou ses online incarnation s); Peut-être que vous aimeriez vous essayer avant que quelqu'un révèle la réponse pour vous?
(Vous devez taper void *(*p[]) (void *, int)
dans le site, à savoir pas d'identification pour les arguments de la fonction.)
EDIT: Peu importe, j'ai mal lu les déclarations. Désolé. Le fait est que vous déclarez des pointeurs de fonction, pas des fonctions comme les personnes déjà indiquées.