Dans nombres de langages, il n’y a pas de pointeurs de
fonctions. Certain
des usages correspondent au concept de généricité du langage ADA
(paramètres générique de typefonction). De plus
façon plus élaborée, les pointeurs de
fonctions peuvent
servir à implémenter en C le mécanisme d’héritage entre classes
et de liaison dynamique des langages objets (Java, C++, …).
Un exemple proche du mécanisme de généricité d’Ada.
On peut par exemple écrire une fonction de tri
d’un tableau ayant comme
pointeur une
fonction de
comparaison de deux éléments. C’est au moment de l’appel de la
fonction de tri
qu’un pointeur sur la
fonction de
comparaison appropriée est passé en paramètre. On pourra ainsi
utiliser une unique fonction de tri
pour ordonner un tableau
d’individus, soit par ordre alphabétique de leur nom (ascendant
ou descendant, soit par leur résultat à un concours.
Voici un programme plus simple illustrant cet usage. Le programme
lit deux nombres et affiche leur somme ou leur différence en
utilisant une fois une fonction plus, et
une fois une fonction moins.