[Résolu]Utilité d'un pointeur vers une fonction ?
Salut ;)
J'ai regardé par curiosité comment marchaient les pointeurs sur fonctions et après un exemple, je ne comprend pas vraiment leur utilité !
Le cours dit cela :
Citation:
L'interet d'utiliser un pointeur séparé est de pouvoir modifier son contenu ; donc la désignation de l'objet sur lequel il pointe, ce qui n'est pas possible autrement.
Et l'exemple donné pour démontrer cette idée est :
(on a 3 fonctions)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
/* fonction 1 */
void func1(int x)
{ void(*ptr)(void) ;
if(x == 1) ptr=one ;
else ptr=other ;
ptr() ;
}
/* fon function 1 */
/* fonction 2 */
void one(void)
{ puts("Vous avez tape 1") ;
}
/* fin fonction 2 */
/* fonction 3 */
void other(void)
{ puts("Autre chose que 1") ;
}
/* fin fonction 3 */
/* le main */
main() {
int a ;
puts("entrer un nombre 1 ou autre") ;
scanf("%d", &a) ;
func1(a) ;
/* fin de main() */ |
Donc ce code demande de taper un nombre, et appelle une fonction qui se charge de regarder la valeur tapé, et si c'est 1, cette fonction appelle une autre fonction, sinon elle appelle un autre autre fonction ...
Ma question : pk utilisé un ptr ?
On aurait très bien sur faire ds la fonction 1 :
non ?
Nas'