VC++7.1 - vararg macro - C - Programmation
Marsh Posté le 03-10-2005 à 15:58:04
ouaip, j'avais plus ou moins reussi a contourner le probleme comme ca moi (en gros, de tete)
Code :
|
donc tu appelles
Code :
|
le preprocesseur transforme ca en :
Code :
|
PreLogPrintf bricole avec file, line, function et renvoie un pointeur de fonction sur la fonction qui traitera le reste (ici, DoLogPrintf)
C'est ptet pas super top en multithread, ca necessite ptet un peu de gymnastique mais ca marche
Marsh Posté le 03-10-2005 à 16:06:50
je comprends pas trop dans ton exemple comment est appelée ensuite une fonction de type LogPrintfFunc ?
Marsh Posté le 03-10-2005 à 16:16:27
oulala ok j'avais pas vu
belle ruse qui vaut bien la surcharge de l'operateur ()
merci beaucoup, c'est tout à fait ce que je cherchais
Marsh Posté le 03-10-2005 à 21:42:03
Bon j'ai pas lu le truc de chrisbk, mais il me semble que ce que tu veux c'est les "variadic marcos". Par exemple :
Code :
|
Par contre ce n'est pas supporte par tous les compilateurs.
Edit : voir aussi http://developer.apple.com/documen [...] acros.html
Marsh Posté le 03-10-2005 à 22:54:39
matafan a écrit :
|
C99 only.
Marsh Posté le 04-10-2005 à 10:15:06
matafan a écrit :
|
marche pas sur vc++ 7.1
Marsh Posté le 04-10-2005 à 16:09:23
blackgoddess a écrit : marche pas sur vc++ 7.1 |
Ben oui, VC++ 7.1 n'est pas C99.
http://msdn.microsoft.com/chats/tr [...] 22703.aspx
dans 10 ans, peut être...
As-tu une bonne raison de ne pas utiliser gcc (Dev-C++, par exemple)
Marsh Posté le 04-10-2005 à 17:26:43
j'etudierais le truc pour voir si en effet j'ai de bonnes raisons
j'en vois deja qq raisons (bonnes, pas vraiment) :
- je connais tres mal l'ide
- je sais pas si ya possibilité d'utiliser un controle de code source avec (c'est un projet en equipe)
edit :
ca m'embeterait de changer d'environnement de développement juste pour un problème comme ca, après il faut voir si d'autres problèmes du style peuvent survenir
Marsh Posté le 03-10-2005 à 15:44:22
Bonjour,
j'aimerais pouvoir définir une macro avec un nombre variable de paramètres, pouvoir écrire quelque chose du style :
je tiens absolument au fait que ce soit une macro pour pouvoir incorporer les _FILE_, _LINE_ du préprocesseur
je sais que c'est possible sur d'autres compilateurs comme GCC, mais je ne trouve pas de solutions sur VC++7.1 (VC++ .NET 2003).
j'ai vu des choses du style
ce que je trouve tres moche
ou dans la MFC que je me suis forcé a regarder :
mais je fais du C, pas du c++, j'ai pensé ecrire quelque chose comme :
mais si on ecrit if(test) machin(pouet pouet); ca foire.
je ne trouve pas de solution, je suis un peu perdu, quelqu'un sait s'il est possible d'ecrire une macro vararg avec ce compilateur ? ou sinon comment contourner le problème ?
---------------
-( BlackGoddess )-