Obligement - L'Amiga au maximum

Dimanche 23 juillet 2017 - 22:35  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : C - les pointeurs de fonction
(Article écrit par Roméo Rapido et extrait d'A-News (Amiga News) - septembre 1990)


Nous allons aborder une notion de C assez ardue : les pointeurs de fonction. Mais, comme c'est la rentrée, je ne vais pas vous faire du "bourrage de crâne" avec un listing de 10 km ; vous allez saisir le principal en une vingtaine de lignes.

Avant tout, précisons autant que faire ce peut ce qu'est un pointeur de fonction : c'est la même chose qu'un pointeur de caractère ou d'entier, la seule différence réside dans le fait qu'il pointe sur la première instruction de la fonction considérée. Dans notre exemple, nous allons initialiser un tableau de pointeurs de fonctions puis nous ferons appel à ces fonctions par une boucle FOR. Le deuxième exemple est plus compliqué puis que c'est le retour de la fonction qui permet d'appeler la fonction suivante.

C

Bien entendu, comme pour les pointeurs de caractères, tout est permis ou presque. Il est possible de faire des affectations du style f = Fonction1 (remarquez que, comme pour les tableaux, le nom est un pointeur sur le premier élément, ici le nom est un pointeur sur le début de la fonction) puis d'utiliser f dans un appel comme celui-ci :

résultat = (*f)()

Bien que cela soit possible, il vaut mieux éviter les opérations sur les pointeurs. Il est fortement déconseillé d'écrire, par exemple, f++ si f est un pointeur de fonction. Mais en principe, tout compilateur C normalement constitué doit retourner une erreur du type "opération illégale sur les pointeurs de fonction". Il est tout de même possible de faire de telles opérations en passant par des castings (changement de type) exemple :

C

Le pointeur de fonction a maintenant une adresse impaire ce qui provoquera une erreur d'adressage si l'on tente d'exécuter le code de la fonction. Il convient donc de ne pas utiliser ce genre de bidouille ou, du moins, de les manipuler avec une extrême précaution. Vous savez maintenant l'essentiel sur les pointeurs de fonctions et leur mode d'utilisation. Un dernier détail : mais à quoi ça sert ? Une des applications qui me vient à l'esprit est la programmation d'analyseurs syntaxiques et d'automates.


[Retour en haut] / [Retour aux articles]