Bonjour,

Pour mon projet, j'utilise un système de trace très simple qui est défini via une macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
#define TRACE(X) do{ printf("[nom du module] "); (X);} while(0)
Par flemme, j'ai pas envie de réécrire ca à chaque fois dans chaque module. Ce que j'aimerais, c'est avoir une macro qui me définit cette macro (fiou)!

Du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
#define DEFTRACE(A) #define TRACE(X) do{printf((A)); (X);}while(0)
Que j'utiliserais ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DEFTRACE("Nom du module ")
Le problème (haha) c'est la présence du #, évidemment. J'obtiens une erreur: `#' operator should be followed by a macro argument name

Comme mon compilo est pour l'embarqué, je ne peux pas utiliser des macro à nombre d'arguments variable.

Savez vous si c'est possible (sans forcément entrer dans le débat: fais une fonction à la place) de définir une macro dans une autre macro?


Merci d'avance!