A voir également:
- Le deuxieme parametre de printf
- Deuxieme ecran pc - Guide
- Remettre parametre usine pc - Guide
- Parametre dns - Guide
- Parametre windows - Guide
- Netflix paramètre compte - Guide
3 réponses
Bonsoir je vais reprendre ce que @KX à dit dans son dernier poste pour l'approfondir, ses fonctions sont appelé "fonction à nombre d'arguments variables" et la majeure partie de ces variables je ne parle pas forcément de
Sans rentré plus en détail sur chaque fonction je t'invite a consulté le manuel de stdarg.hsur les instruction
bref un exemple sera mieux qu'un long discours
Attention le code est un exemple
à bientôt
Toute connaissance est une réponse à une question.
printf()utilise une / des macro qui est va_start pour affecter un pointeur X vers le tout premier argument de la pile et va_end pour terminer en gros lorsque le traitement de cette pile est finie.
Sans rentré plus en détail sur chaque fonction je t'invite a consulté le manuel de stdarg.hsur les instruction
va_list, va_arg, va_start etc..
bref un exemple sera mieux qu'un long discours
Attention le code est un exemple
à bientôt
#include <stdio.h>
#include <stdarg.h>
/**
* Attention dans cette exemple j'utilise
* printf & c'est un choix volentaire
* le code est pas optimiser attention
**/
void f_ExempleAvancer( char *pStr, ... ){
va_list List; //Liste
va_start( List, pStr );
while( *pStr ){
if( *pStr == '%' ){
switch( *(++pStr) ){
case 's' :
printf( "Chaîne \t\t: %s\n", (char*)va_arg(List,char*) );
break;
case 'd':
printf( "Entier / Operation\t: %d\n", (int)va_arg(List, int) );
break;
case 'f':
printf( "Double / Operation\t: %f\n", (float)va_arg(List, double));
break;
default:
perror( "format inconnu\n" );
break;
}
}
pStr++;
}
va_end(List);
}
//Fonction principale
int main( void ){
//Teste de la Fonction Avancer
f_ExempleAvancer("%s\t,%s \n", "@KX est ", "Modérateur");
f_ExempleAvancer("%s %s %d %f \n", "Bonjour", "@sambia39", 2+2, 10/5.2);
return ( 0 );
}
Toute connaissance est une réponse à une question.
doumbia.danse
Messages postés
52
Statut
Membre
Merci beaucoup Sambia39 , c'est exactement ce que je cherchais.
Bonjour,
Ça veut dire que tu peux mettre 0 paramètre, 1 paramètre ou plusieurs paramètres. Cela va dépendre du nombre de pattern que tu vas mettre dans le premier paramètre. Exemples :
Ça veut dire que tu peux mettre 0 paramètre, 1 paramètre ou plusieurs paramètres. Cela va dépendre du nombre de pattern que tu vas mettre dans le premier paramètre. Exemples :
printf("Hello World! ");
printf("Hello %s !", "World");
printf("%s %s !", "Hello", "World");
je sais leur rôle mais c'est plutôt le type même que je veux connaitre, comme par exemple le premier c'est
const char*, et c'est maintenant le type du second que je veux savoir , puisque j'aimerais créer une fonction qui prend en premier paramètre un
int a, en deuxième
const char *chaineet en troisième un type non fixe ça peut être un
intou
charou
char *etc