Passage de paramètres variable en C - Programmation
Marsh Posté le 11-09-2001 à 18:41:56
Y a t'il des informaticiens dans la salle ?
Réponse pour ceux que cela intéresse
/****************************************************************
MODULE : nico.c
AUTEUR : Nicolas COLIN
DATE : 11.09.2001
HISTORIQUE:
**************************************************
***************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <errno.h>
#include <isam.h>
#include <fcntl.h>
#include <stdarg.h>
#include <sys/types.h>
#include <sys/stat.h>
/*************************************************
***************
Prototypes
**************************************************
***************/
int fncTraceSoc( int iNbArg, ... );
/***************************************************************
FONCTION : main
OBJET : hehe
***************************************************************/
void main( void )
{
char szMiaou[6] = {'M', 'i', 'a', 'o', 'u', 0x00 };
fncTraceSoc( 1, 10, szMiaou );
printf( "szMiaou : %x\n", szMiaou );
} /* main */
/***************************************************************
FONCTION : fncTraceSoc
OBJET : Envoi les traces par socket sur une base c-isam.
***************************************************************/
int fncTraceSoc( int iNbArg, ... )
{
va_list vlParam;
int iVal;
char *pcMsg;
va_start( vlParam, iNbArg );
iVal = va_arg( vlParam, int );
printf( "iVal = %d\n", iVal );
pcMsg = va_arg( vlParam, char * );
printf( "Msg = %s\n", pcMsg );
printf( "pcMsg : %x\n", pcMsg );
va_end( vlParam );
return( 0 );
} /* fncTraceSoc */
/********************************************************************/
/* FIN de trace.c */
/********************************************************************/
Marsh Posté le 11-09-2001 à 17:00:52
Meow,
Comment fait-on une fonction c avec passage de paramètres en nombre variable ( genre printf ) ?
J'ai vu dans des includes l'utilisation de "va_list" ou de "..." en paramètres.
Quelqu'un pourrait-il m'expliquer et me donner un exemple (prototype, appel, récupération des paramètres dans la fonction).
Merci.