Fonction C a nombre variable de parametres

Fermé
tl_kiki Messages postés 5 Date d'inscription jeudi 18 octobre 2001 Statut Membre Dernière intervention 8 août 2002 - 8 août 2002 à 11:03
 siteduzero.com - 16 nov. 2009 à 17:46
J'aimerais quelques renseignement sur les va_list en C.
Peut on recuperer le nombre de parametres?
Dans le code d'1 fonction a nombre de parametres variable peut on recuperer tous les parametre pour les stocker dans un tableau....

Merci
A voir également:

4 réponses

salut

les fonctions a parametres variables sont tres agreables a utiliser.

Je crois que c est a toi de savoir le nombre et le type des parametres passes
a cette fonction.

Pour cela il ne faut pas oublier que le premier argument est obligatoire
pourquoi ne pas l'utiliser comme repere exemple

void ma_fonction(int repere,...)
{
va_list chaines;

va_start(chaines,repere);


switch(repere)
{
case 1:
//si le 1er arg vaut 1 alors je sais
//qu'il y aura deux autres arg a cette fonctions
//et que leur type est int et char*
int prem;
char* deus;
prem = va_arg(chaines,int);
deus = va_arg(chaines,char*);
...
break;

case 2:
//si le premier arg vaut 2 il y aura trois
//argument de type char* int char*
char * prem;
int deus;
char * trois;
prem = va_arg(chaines,prem);
deus = va_arg(chaines,deus);
trois = va_arg(chaines,trois);
...
break;

....
}
va_end(chaines);
return;
}
5
siteduzero.com
16 nov. 2009 à 17:46
pour ceux qui veulent un tuto complet:

http://www.siteduzero.com/tutoriel-3-93219-les-fonctions-a-nombre-variable-de-parametres.html
4
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 210
8 août 2002 à 11:20
La réponse est "oui", mais je ne saurais de donner beaucoup de détails. Je me souviens avoir utilisé le mécanisme "va_list" pour une fonction d'édition de messages d'erreur, avec nombre d'arguments variable (ce mécanisme est implicitement employé dans les ordres "printf()" ou similaires).
Si mes souvenirs sont bons, le mécanisme s'applique au travers du pré-processeur, à la manière de argc,argv[] (= table d'adresses des arguments), mais l'implémentation varie avec les machines.
1
salut all
j'ai un exposé en c le 19/mars/2007 sur "Les Fonction un Nombre d’Argument Variable" aidé moi svp
aidé moi svp le plus vite posible :)
merci
1