|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Arkadi Inscription : juin 2012 Messages : 1 ![]() |
Bonsoir à tous
Débutant en programmation système et 'C', j'ai un petit problème: comment faire pour récupérer/afficher le nom de fonction passée en paramètre. J'ai une fonction Code :
Si qqn peut m'aider...svp En vous remerciant par avance ... |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 368 ![]() |
Bonjour.
Je ne connais pas la programmation système et ne sais donc pas si il est possible de le faire simplement. Cependant la façon la plus simple à mes yeux pour le réaliser serait de disposer de l'information directement depuis la fonction passée en paramètre. On pourrait par exemple avoir une fonction transmise du type :name contiendrait alors le nom de la fonction en retour. Une autre manière pourrait être d'avoir un tableau qui contiendrait les pointeurs des différentes fonctions ainsi que leur nom respectif. Dans fonction1(); il ne te resterait plus qu'à trouver la correspondance du pointeur de la fonction transmise dans le tableau.
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.26 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#3 | |||
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 7 191 ![]() |
Citation:
|
|||
|
|
20
|
|
|
#4 | |||
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 614 ![]() |
Hello,
Citation:
Toutefois, il faut signaler deux exceptions :
À noter enfin que si tu cherches à faire cela à des fins de déboguage, alors il vaut mieux directement apprendre à se servir du débogueur (gdb). Pour cela, compile ton programme avec l'option « -g » et exécute-le ensuite depuis gdb. Ton programme sera toujours compilé de la même façon mais l'exécutable sera accompagné d'une section supplémentaire contenant la table de tous les symboles. Ainsi, non seulement le compilateur sera à même de résoudre ces pointeurs en le nom de la fonction correspondante, mais également de t'afficher le code source au fur et à mesure de son exécution. |
|||
|
|
10
|
|
|
#5 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 7 191 ![]() |
Bonjour,
Ce que je trouve bizarre, c'est que tu sois debutant et que tu cherches a jouer avec des pointeurs de fonctions, qui sont des concepts relativement complexes a apprehender... |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 482 ![]() |
Au lieu d'appeler ta fonction directement tu pourrais passer par un macro qui appellerait ta fonction (fonction1) en lui passant le nom de la fontion ("fonction2") et son adresse.
Evidemment il faut que tu modifie fonction1 pour qu'elle prenne un nom de fonction et son adresse en argument. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com