meech
Messages postés209Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention14 août 2007
-
15 juin 2005 à 15:09
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
18 juin 2005 à 12:23
Bonjour,
J'essaie, en vain, de porter un code convenable compilable sous GCC 3.4 vers l'environnement Visual Studio .NET 2003.
Un proboème survient lors de déclaration de macro dont le nombre de paramètres est inconnu. Par exemple :
#define MACRO(x, ...) printf("%s\n", __VA_ARGS__)
1. Visual Studio ne reconnaît pas __VA_ARGS__.
2. Les pointillés provoquent l'erreur C2010 : vig.hpp(63): error C2010: '.' : inattendu dans la liste des paramètres formels d'une macro
En fait, je cherche à créer une macro dont le nombre d'arguments peut aller de 1 à n. Je suis surpris de ce problème, apparaissant uniquement sous Visual C++, car il me semblait que ceci faisait partie des spécifications ANSI.
Bref, l'un d'entre vous pourrait-il me proposer une solution "palliative" ?
Par avance, merci !
cs_Joky
Messages postés1787Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention31 janvier 20092 15 juin 2005 à 18:09
Mais les fonctions sont capables de faire ça non ?
J'ai déjà vu plusieur fonction comme ça :
void Fonct(int a, ...)
Je sais pas si c'est ma mémoire qui me joue des tours :) Mais bon...
Passe par une fonction, au lieu d'une macro, ça reste quasiment pareil je suppose...
meech
Messages postés209Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention14 août 2007 15 juin 2005 à 18:17
Salut,
Je confirme que les fonctions sont capables de faire cela. En l'occurrence, ceci ne m'est pas utile dans le cas précis : la macro ayant pour but elle-même de permettre la déclaration de fonctions...
En tout cas, merci à vous deux pour vos précisions.