Problème compilation + pointeur de fonction
Nicolas
-
batmat Messages postés 1871 Statut Membre -
batmat Messages postés 1871 Statut Membre -
Bonjour, j'ai un petit problème en essayant d'affecter un pointeur de fonction à une fonction.
-je commence avec ma déclaration du pointeur
- ensuite, je déclare ma fonction bidon
- enfin, je fais l'affectation
Lors de la compilation, GCC me donne ces erreurs:
src/socket_adaptation.c:226: warning: type defaults to `int' in declaration of `tipc_ext_socket'
src/socket_adaptation.c:226: conflicting types for `tipc_ext_socket'
src/socket_adaptation.c:215: previous declaration of `tipc_ext_socket'
src/socket_adaptation.c:226: warning: data definition has no type or storage class
src/socket_adaptation.c: In function `tipc_socket':
src/socket_adaptation.c:237: called object is not a function
src/socket_adaptation.c: In function `tipc_sk_sendmsg':
src/socket_adaptation.c:510: warning: initialization from incompatible pointer type
make[1]: *** [obj.linuxm/socket_adaptation.o] Error 1
Quelqu'un peut m'orienter sur une piste de solution svp.
Merci beaucoup.
Nic
-je commence avec ma déclaration du pointeur
int (*tipc_ext_socket)(struct socket*,int,struct proto_ops*);
- ensuite, je déclare ma fonction bidon
int tipc_stream_socket(struct socket* sock, int protocol, struct proto_ops* ops)
{
return 0;
}
- enfin, je fais l'affectation
tipc_ext_socket = &tipc_stream_socket;
Lors de la compilation, GCC me donne ces erreurs:
src/socket_adaptation.c:226: warning: type defaults to `int' in declaration of `tipc_ext_socket'
src/socket_adaptation.c:226: conflicting types for `tipc_ext_socket'
src/socket_adaptation.c:215: previous declaration of `tipc_ext_socket'
src/socket_adaptation.c:226: warning: data definition has no type or storage class
src/socket_adaptation.c: In function `tipc_socket':
src/socket_adaptation.c:237: called object is not a function
src/socket_adaptation.c: In function `tipc_sk_sendmsg':
src/socket_adaptation.c:510: warning: initialization from incompatible pointer type
make[1]: *** [obj.linuxm/socket_adaptation.o] Error 1
Quelqu'un peut m'orienter sur une piste de solution svp.
Merci beaucoup.
Nic
A voir également:
- Problème compilation + pointeur de fonction
- Fonction si et - Guide
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
2 réponses
Tu n'as pas bien compris le principe d'un pointeur de fonction : ici tu cherches à affecter un type, c'est comme si tu avais écrit :
écrire int (*f) (void) par exemple signifie déclarer le type de fonctions renvoyant int et prenant void en paramètre ...
compris ?
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
int x; int=x;
écrire int (*f) (void) par exemple signifie déclarer le type de fonctions renvoyant int et prenant void en paramètre ...
compris ?
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?