Nom de fonction dynamique
Bonjour,
Je suis en train de réaliser un module de création de menu en GTK+, le but c'est qu'il soit le plus dynamique possible: j'ai déjà réussie en ce qui concerne l'organisation maintenant j'aimerai trouver un moyen pour que les fonctions callback appellées soit spécifier dans un fichier texte.
J'ai une idée en comparant une chaine de caractère provenant du fichier et le nom de la fonction transformée en chaine de caractère. Le problème c'est que ça m'oblige à créer un tableau pour indexé le noms des fonctions avec leur adresse.
Existe-t-il un autre moyen?
Re: Nom de fonction dynamique
Citation:
Envoyé par gege2061
Je suis en train de réaliser un module de création de menu en GTK+, le but c'est qu'il soit le plus dynamique possible: j'ai déjà réussi en ce qui concerne l'organisation maintenant j'aimerai trouver un moyen pour que les fonctions callback appellées soit spécifier dans un fichier texte.
J'ai une idée en comparant une chaine de caractère provenant du fichier et le nom de la fonction transformée en chaine de caractère. Le problème c'est que ça m'oblige à créer un tableau pour indexé le noms des fonctions avec leur adresse.
Pas à ma connaissance.
Faire un tableau de structures comportant le nom de la fonction et son adresse.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| /* fonction la plus generique possible... Attention, pas de controles.. */
typedef int fun_f();
struct fun
{
char const *sid;
fun_f *pf;
};
struct fun af[]=
{
{"ouvrir", ouvrir},
{"fermer", fermer},
}; |
etc.
C'est comme ça que sont codés certains interpréteurs de commandes...
La recherche est rapide si le tableau est trié et qu'on utilise une recherche dichotomique (bsearch(), par exemple).