Introduction
Un pointeur sur une fonction est un moyen de stocker l'adresse mémoire d'une fonction tout comme une variable stocke l'adresse mémoire d'une valeur. Lorsqu'une fonction est appelée à travers un pointeur, on parle de pointeur sur une fonction.
Dans ce laboratoire, nous allons écrire un programme C pour démontrer comment utiliser un pointeur sur une fonction.
Déclarer et définir la fonction à pointer
Dans cette étape, nous allons déclarer et définir une fonction qui prend deux arguments entiers et ne renvoie rien.
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
Déclarer un pointeur sur une fonction
Dans cette étape, nous allons déclarer un pointeur sur la fonction créée à l'étape 1. La syntaxe pour déclarer un pointeur sur une fonction est similaire à celle pour déclarer un pointeur sur une variable, mais elle spécifie les types de paramètres et le type de retour de la fonction sur laquelle on pointe.
// pointeur sur fonction
void (*fptr)(int, int);
Stocker l'adresse de la fonction dans le pointeur
Dans cette étape, nous allons stocker l'adresse de la fonction créée à l'étape 1 dans le pointeur créé à l'étape 2.
// assigner l'adresse au pointeur sur fonction
fptr = func;
Appeler la fonction à l'aide du pointeur
Dans cette étape, nous allons appeler la fonction que nous avons créée à l'étape 1 à l'aide du pointeur sur la fonction créée à l'étape 2.
// appel de fonction
func(2,3);
fptr(2,3); // appel d'une fonction en se référant au pointeur sur une fonction
Écrire le code complet
Ouvrez le fichier main.c dans le répertoire ~/project/.
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
int main()
{
printf("\n\n\t\tLabEx - Meilleur endroit pour apprendre\n\n\n");
// pointeur sur fonction
void (*fptr)(int, int);
// assigner l'adresse au pointeur sur fonction
fptr = func;
// appel de fonction
func(2,3);
fptr(2,3); // appel d'une fonction en se référant au pointeur sur une fonction
printf("\n\n\t\t\tCoder est amusant!\n\n\n");
return 0;
}
Compiler et exécuter le code
Pour compiler le code, ouvrez le terminal et tapez la commande suivante :
gcc main.c -o main
Pour exécuter le programme, tapez la commande suivante :
./main
Résumé
Dans ce laboratoire, nous avons appris à utiliser un pointeur sur une fonction dans un programme C. Nous avons vu comment déclarer et définir la fonction à pointer, comment déclarer un pointeur sur une fonction, comment stocker l'adresse de la fonction dans le pointeur et comment appeler la fonction à l'aide du pointeur. L'utilisation de pointeurs sur des fonctions peut faciliter la rédaction et la compréhension de programmes complexes.



