nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 2007
-
19 avril 2006 à 16:49
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024
-
29 mai 2008 à 17:01
Bonjour ! J'aimerais savoir si il est possible d'accèder à des données se trouvant dans une va_list (accèder à tous les paramètres passés à la fonction), et si c'est possible, comment faut-il faire ?
/* La liste d'arguments commence après le dernier argument formel */
va_start(vargs,x);
/* Récupération d'un argument de type int */
width=va_arg(vargs,int);
/* Récupération d'un argument de type char */
width=va_arg(vargs,char);
/* Fin de lecture de la liste optionnelle */
va_end(vargs);
}
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 20 avril 2006 à 11:35
En fait, va_arg() récupère le prochain "objet" de la liste, que tu passe en tant que 1er paramètre. Dans le second, tu précise le type de données que tu attends. A la sortie de la fonction, le pointeur sur le prochain élément est mis à jour.
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 16 mai 2008 à 16:54
Hello,
Tu te trompes d'endroit pour poster ta demande mon ami.
Crée toi un nouveau topic en expliquant bien ton problème: "créer les interface API en C" ne veut pas dire grand-chose...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
RMEU
Messages postés31Date d'inscriptionmercredi 10 avril 2013StatutMembreDernière intervention10 novembre 2014 29 mai 2008 à 10:14
Je suis en train d'écrire une fonction (appelons-la MyFunc) qui prend un nombre variable de paramètres. Jusque là, pas de problème pour les traiter. Maintenant, dans cette fonction, je dois appeler la fonction fprintf qui prend aussi un nombre variable de paramètres qui on été passés à MyFunc. Quelqu'un a-t'il une idée sur la manière de procéder? merci d'avance.
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 29 mai 2008 à 14:54
Yep, je crois que tu passes directement à fprintf() ta va_list.
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
int main ( int ap_argc, char *ap_argv[] )
{
int lv_rc = 1;
trc_trace( "MAIN", 2, "Message <%d> val <%d>", lv_rc, 123 );
return 0;
}
Notons que l'utilisation de va_arg dans la fontion trc_trace donne des résultats corrects. J'ai éliminé l'utilisation de va_arg, mais le résultat est toujours faux. Il suffit de regarder le contenu de lv_buf après le sprintf.
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 29 mai 2008 à 17:01
Euh bah...désolé, je ne sais pas quoi dire...j'aurais fait la même chose que toi
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage