Bonjour,
Il y a quelque temps, je suis tombe sur un manual dans lequel il etait explique qu'il etait possible de passer un va_list (ou va_list*, ma memoire fait defaut) a une fonction normale afin de lui passer les arguments voulus.
Typiquement:
Je en me souviens plus ou j'avais vu cela, et je n'arrive pas a retrouver quoi que ce soit dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <stdio.h> #include <stdarg.h> void foo(const char *s, int i) // on passerait donc un va_list au lieu de ces parametres { printf("%s - %d\n", s, i); } void bar(void (*f)(va_list), ...) { va_list ap; va_start(ap, f); f(ap); va_end(ap); } int main(void) { bar(foo, "i am a string", 42); return 0; }
L'idee de base est que l'on peut transformer une liste de parametres en un va_list, du coup il devrait etre posible de retourner le processus.
si vous disposez d'informations relative a ce sujet, n'hesitez pas a repondre!
Partager