Bonjour,
J'aurai voulue savoir s'il était possible de faire quelque chose dans ce genre la:
:roll:Code:#define f1( int arg1, ... ) f2( int arg1, -1, ... )
Version imprimable
Bonjour,
J'aurai voulue savoir s'il était possible de faire quelque chose dans ce genre la:
:roll:Code:#define f1( int arg1, ... ) f2( int arg1, -1, ... )
Oui, comme ca :
Code:
1
2
3 #define debug(level, ...) \ if (debuglvl>=level) \ fprintf(stderr, __VA_ARGS__)
Je pense avoir compris (c'est pas sûr)
Macro à nombre d'arguments variable... En C90, non, alors on utilise le truc de la macro à double parenthèses:Citation:
Envoyé par gege2061
que l'on appelle comme ça:Code:#define f1(a) f2 a
Code:
1
2
3
4 f1((x, y)); f1((x, y, z));
Attention, __VA_ARGS__ n'existe qu'en C99.Citation:
Envoyé par D[r
C'est pour ça que je ne l'est pas trouver.Citation:
Envoyé par Emmanuel Delahaye
Merci pour ta réponse, c'est bete mais fallait y penser, merci beaucoup :wink:
et est-ce que ça a un rapport?
Code:
1
2
3
4
5
6
7
8 SYNOPSIS #include <sys/varargs.h> void va_start(va_list pvar, void parmN); (type *) va_arg(va_list pvar, type); void va_copy(va_list dest, va_list src); void va_end(va_list pvar);
:?: généralement on utilise stdarg.h mais dans ce cas là je ne peut pas l'utiliser !Citation:
Envoyé par caribou_belle