Passer en argument le nom d'une fonction à exécuter
11 réponses
Nicolas Hervé
Je veux passer en option à ma fonction principale le nom d'une fonction
secondaire qui sera utilisé pour une certaine action.
Le but est de pouvoir choisir à l'exécution quel algo on va pouvoir
utiliser.
Ces fonctions secondaire seront dans une librairie chargé dynamiquement.
En quelque sorte je souhaite développer une API avec déjà quelques algos
implémentés pour ma fonction secondaire et permettre à l'utilisateur
d'étendre à d'autres algos.
Je veux passer en option à ma fonction principale le nom d'une fonction secondaire qui sera utilisé pour une certaine action. Le but est de pouvoir choisir à l'exécution quel algo on va pouvoir utiliser.
Ces fonctions secondaire seront dans une librairie chargé dynamiquement.
En quelque sorte je souhaite développer une API avec déjà quelques algos implémentés pour ma fonction secondaire et permettre à l'utilisateur d'étendre à d'autres algos.
Ca s'appelle un callback. Pas de difficulté particulière. Il faut passer la fonction par un pointeur du même type. Pour éviter les écritures gores, il est conseillé d'utiliser un typedef (chez moi, suffixe '_f' comme fonction)
void list (char const *const *const tab ,size_t const nb ,list_f * const pf) { if (pf != NULL) { size_t i;
for (i = 0; i < nb; i++) { if (tab[i] != NULL) { pf (tab[i]); } } } }
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Nicolas Hervé <nicolas.herveNO@SPAMenssat.fr> wrote:
Je veux passer en option à ma fonction principale le nom d'une fonction
secondaire qui sera utilisé pour une certaine action.
Le but est de pouvoir choisir à l'exécution quel algo on va pouvoir
utiliser.
Ces fonctions secondaire seront dans une librairie chargé dynamiquement.
En quelque sorte je souhaite développer une API avec déjà quelques algos
implémentés pour ma fonction secondaire et permettre à l'utilisateur
d'étendre à d'autres algos.
Ca s'appelle un callback. Pas de difficulté particulière. Il faut passer la
fonction par un pointeur du même type. Pour éviter les écritures gores, il
est conseillé d'utiliser un typedef (chez moi, suffixe '_f' comme fonction)
Je veux passer en option à ma fonction principale le nom d'une fonction secondaire qui sera utilisé pour une certaine action. Le but est de pouvoir choisir à l'exécution quel algo on va pouvoir utiliser.
Ces fonctions secondaire seront dans une librairie chargé dynamiquement.
En quelque sorte je souhaite développer une API avec déjà quelques algos implémentés pour ma fonction secondaire et permettre à l'utilisateur d'étendre à d'autres algos.
Ca s'appelle un callback. Pas de difficulté particulière. Il faut passer la fonction par un pointeur du même type. Pour éviter les écritures gores, il est conseillé d'utiliser un typedef (chez moi, suffixe '_f' comme fonction)