1 pièce(s) jointe(s)
Precompilateur: #define intégrant un autre define
Bonjour,
J'ai une question qui se révélera assez difficile. Dans la finalité je ne sais pas si c'est possible. C'est pour cela que je m'en remet à vous, car dans votre vie, vous avez pas voir un truc permettant de faire ce que je veux.
Je vais essayer d'être précis, car c'est un peu dur à expliquer.
J'ai un define comme celui ci:
Je veux faire un autre define comme ça:
Code:
1 2
|
#define DEPTH_STR "Depth: DEPTH" |
Plus précisément, je voudrais que dans DEPTH_STR 'DEPTH' soit remplacé par 10 ( la valeur que je lui donne ).
Bien entendu, dans la forme que je viens de donner, cela ne marche pas.
On pourrais faire ceci:
Code:
1 2
|
#define DPETH_STR "Depth: "DEPTH"" |
Mais cela ne marche pas plus
Une autre possibilité est:
Code:
1 2
|
#define DEPTH_STR(value) ("Depth:"#value"") |
Cela est correct, mais lorsque j'apelle ma macro dans mon code comme cela:
Code:
1 2
|
function(DEPTH_STR(DEPTH)); |
Le precompilateur ne va pas remplacer DEPTH par la valeur lui correspondant...
En fait, je crois qu'il faudrait indiquer au précompilateur une façon de dire, je veux que tu traite mon 'DEPTH' avant de traiter DEPTH_STR ( comme ça il passerai la valeur de DEPTH et tout irai bien ).
Mais je ne sais si c'est possible de donner une priorité dans le traitement des define ...
Si quelqu'un à une idée, n'hésitez pas à le dire,
Merci
( En pièces jointes, vous pouvez trouver un programme qui permette de faire des test sur le problème )