Utilisation de va_list va_arg compliqué

PADYVEN Messages postés 69 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 29 août 2012 - 9 mai 2010 à 17:21
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 11 mai 2010 à 18:49
Bonjour,

comment utilisé va_list lorsque ma fonction ressemble a cela:
int ListeD_Print(ListeD *MaListeD,void (*FonctionPrint)(void *DataNoeud),...)

je ne trouve l'expliquation dans aucune doc
merci

ps: j'ai essayé comme ca mais ca ne semble pas fonctionner correectement

//liste des arguments
va_list pointeurArgument;
va_start(pointeurArgument, (*FonctionPrint));
A voir également:

3 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
10 mai 2010 à 20:11
Que veux-tu passer comme paramètres à nombre variable ?
---
VB.NET is good ... VB6 is better
PADYVEN Messages postés 69 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 29 août 2012
11 mai 2010 à 06:49
merci de repondre pour le moment vu que c'est juste un test j'ai juste une variable int debug

c'est a dire sans argument facultatif
int ListeD_Print(ListeD *MaListeD,void (*FonctionPrint)(void *DataNoeud),int debug)

mais ca me faisait ch... de la mettre alors que quand j utilise normalement la fonction je ne l'utilise jamais

et ca me fait travailler les arguments facultatif


merci d'avance
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
11 mai 2010 à 18:49
Pas possible en C, je te conseille de faire comme ceci :
typedef void (*FctPrint)(void *DataNoeud);
int _ListeD_Print(ListeD *MaListeD, FctPrint FonctionPrint, int dbg);
#define ListD_Print(MaListeD,FonctionPrint) _ListeD_Print(MaListeD,FonctionPrint,0)
//Si ta fonction reçoit dbg==0 alors elle ne doit pas s'en occuper.

Une autre méthode serait d'utiliser des #ifdef pour compiler (ou pas) des bouts de code lors du débugging de ton application.
---
VB.NET is good ... VB6 is better
Rejoignez-nous