Bonjour,
Je souhaiterais pouvoir concaténer un nom de macro et une variable de type "int" ensemble, afin d'avoir un nom de macro...
J'ai dans mon fichier toto.h plusieurs macros :
ensuite dans mon fichier toto.c :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #define NB_OBJET 3 #define OBJET1_X1 100 #define OBJET1_Y1 300 #define OBJET1_Z1 150 #define OBJET1_X2 0 #define OBJET1_Y2 600 #define OBJET1_Z2 230 #define OBJET1_X3 340 #define OBJET1_Y3 500 #define OBJET1_Z3 10
Mais le compilo me dit que OBJET1_Xi n'existe pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include "toto.h" #define cat(x, y) x ## y void toto(void) { int i; i = 1; while (i <= NB_OBJET) { gere_objet(i); i++; } } void gere_objet(int i) { cat(OBJET1_X, i); }
Comment faire pour remplacer i par sa valeur et ce fait avoir mes macros OBJET1_X1, OBJET1_X2, OBJET1_X3 ?
Merci
Partager