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 :

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
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
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);
}
Mais le compilo me dit que OBJET1_Xi n'existe pas...

Comment faire pour remplacer i par sa valeur et ce fait avoir mes macros OBJET1_X1, OBJET1_X2, OBJET1_X3 ?

Merci