Problème compilation + pointeur de fonction

Nicolas -  
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
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:

2 réponses

francoispgp
 
demande plustot de l'aide sur le forum programmation parceque la peu parmis nous pourront t'aider.
0
batmat Messages postés 1871 Statut Membre 114
 
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 :
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 ?
0