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 :
Et l'exemple donné pour démontrer cette idée est :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.
(on a 3 fonctions)
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 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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() */
Ma question : pk utilisé un ptr ?
On aurait très bien sur faire ds la fonction 1 :
non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(x == 1) one() ;
Nas'
Partager