je suis tombé sur cette ligne:Que signifie cette déclaration C?
void (*(*x)(void (*[10])(int *)))(int *)
Quelqu'un peut-il me dire ce qu'il est?
je suis tombé sur cette ligne:Que signifie cette déclaration C?
void (*(*x)(void (*[10])(int *)))(int *)
Quelqu'un peut-il me dire ce qu'il est?
Pour décomposer vous, début à partir de la plupart des parenthèses et travaillez votre chemin.
(*[10])
< ---- tableau de pointeurs 10(*[10])(int *)
< ------ tableau de 10 pointeurs de fonctions qui a un pointeur vers int
comme argument(void (*[10])(int *))
< --- --- tableau de 10 pointeurs de fonctions qui a un pointeur vers int
comme argument et retourne void
(*x)(void (*[10])(int *))
< ------- x
est un pointeur vers un fu nction qui a comme argument (un tableau de pointeurs de fonctions 10 qui a un pointeur vers int comme argument et renvoie void
).....
je me suis arrêté à mi-chemin à travers, mais nous espérons que aide.
Je voudrais upvote ceci si j'avais plus de votes à utiliser aujourd'hui. –
J'irais chercher du café si je n'avais pas eu de tasse récemment. –
Un pointeur vers une fonction qui comporte un réseau de 10 pointeurs de fonctions qui a int * arguments et retourner type void comme argument, et retourne un pointeur vers une fonction qui a int * argument et le type de retour vide.
La question ultime est, comment feriez-vous de comprendre cela, si vous n'aviez pas cela? –
@TonyTheLion, non les questions pourquoi quelqu'un écrirait une telle chose sans la décomposer en plus petits morceaux? –
cdecl est très utile pour ce genre de chose. Il dit:
déclare x comme pointeur à la fonction (tableau 10 de pointeur vers une fonction (pointeur vers int) retour void) pointeur retourner à la fonction (pointeur vers int) renvoyant void
Vous trouverez des explications ici:
Est-ce un jeu-questionnaire ou quelque chose? :) – FailedDev
Il est facile de répondre: c'est un gâchis. –
La réponse est toujours http://www.cdecl.org. – mkb