bonjour,
est-ce qu'il est possible en C de mettre en parametre une fonction fct2 dans une autre fonction fct1, par exemple void fct1(fct2, int a) ?
merci de vos reponses.
 question fonction en C
 question fonction en C
				
				
						
						
				bonjour,
est-ce qu'il est possible en C de mettre en parametre une fonction fct2 dans une autre fonction fct1, par exemple void fct1(fct2, int a) ?
merci de vos reponses.
 
 
				
				
						
						
				Salut,
Oui c'est possible avec les "pointeurs de fonction", il y a quelques fonctions de la librairie standard qui utilisent cette technique, exemple :
Ici le 4eme paramètre doit être un pointeur sur une fonction ayant le prototype donné (retourne un int et a 2 paramètres const void *)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
http://man.developpez.com/man3/qsort.3.php
 
 
				
				
						
						
				Effectivement, si la signature de la fonction que tu veux mettre en paramètre ressemble à :alors la fonction qui prendra fct en pramètre devra avoir une signature du genre
Code C : Sélectionner tout - Visualiser dans une fenêtre à part int fct(void *arg). A chaque fois que tu voudras appeler une fct en paramètre de Tafonction, il faudra veiller à ce que la signature de fct corresponde bien à la signature attendu en paramètre.
Code C : Sélectionner tout - Visualiser dans une fenêtre à part TonType Tafonction(int (*ptfct)(void *),.....)
 
 
				
				
						
						
				Un rapide exemple pour te montrer l'utilisation des pointeurs de fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Partager