Declaration en C

Fermé
xander - 7 juil. 2003 à 11:54
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 déc. 2010 à 18:02
hello, 2 petit question en C: que signifie les declarations suivantes:
void *(*(f[]))(int *);
et
char *d(int (*[])());
merci de m eclairer

6 réponses

ton prof c'est pas Bernard Quement par hasard ?
1
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
7 juil. 2003 à 13:14
Zone sensible ;p. Allez ! Je m'y risque...

>void *(*(f[]))(int *);
-> pointeur sur pointeur de fonctions f retournant un void * et prenant en paramètre en pointeur sur int.

>char *d(int (*[])());
->Fonction qui retourne un char* (pointeur sur char), qui prend en paramètre un pointeur de pointeur de fonction qui n'a rien en paramètre et qui renvoie un int...

Pfiouuuu....

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
0
merci!! j espere que c es un truc comme ca!!
enfin c est des kestions de mon exams de janvier, mais j avais aucune idee de la signification!! :(
0
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
7 juil. 2003 à 13:29
Ben, chui en gros dans le vrai, mais j'ai un ptit doute sur la partie "pointeur de pointeur de fonction" avec :
(*(f[])) je crois que c'est totalement équivalent à (*(*f)) mais je n'en suis pas sur à 100%.

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sylvain114c Messages postés 10 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 7 octobre 2005 2
7 juil. 2003 à 19:06
Pour le premier :
void *(*(f[]))(int *);
c'est un tableau de pointeur sur fonctions prenant un int* en parametre et renvoyant un void*

car attention: un tableau n'est pas un pointeur.
ça resemble c'est tout.

Pour le deuxieme rien a re-dire ;-)
0
un "tableau" est comme un pointeur car tu ne recupere que l adresse du premiere element de ton tableau, ce que te permet de le parcourire. mais effectiement en fair la difference est plus pedagogique, je n apporte qu une precisions pour ce que sa interesse. merci."
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 25/12/2010 à 18:02
Non un tableau n'est pas un pointeur... Ce n'est pas une question de pédagogie.
Le pointeur pointe sur la première adresse, le tableau représente l'ensemble.
Par contre, lorsqu'on envoie un tableau en tant que paramètre dans une fonction, le compilateur lui substitue la première adresse sur le tableau pour alléger les appels fonctions.
Cdlt,
0
ben merci a tous :)
et non mon prof c po B Quement; moi je suis a l USTL de lille..
0