Bonjour,
Pour mon projet, j'utilise un système de trace très simple qui est défini via une macro:
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)!
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define TRACE(X) do{ printf("[nom du module] "); (X);} while(0)
Du genre:
Que j'utiliserais ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define DEFTRACE(A) #define TRACE(X) do{printf((A)); (X);}while(0)
Le problème (haha) c'est la présence du #, évidemment. J'obtiens une erreur: `#' operator should be followed by a macro argument name
Code : Sélectionner tout - Visualiser dans une fenêtre à part DEFTRACE("Nom du module ")
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!
Partager