Bonjour,


J'ai (encore) un peu problème de macro

dans mon code c j'ai mis une inclusion comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
/* ... */
typedef unsigned char* puchar;
#define ELEMENT puchar
#include "fichier.c"
#undef ELEMENT
 
/* ... */

avec fichier.c contenant ceci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct _CELL_##ELEMENT {
	ELEMENT elt;
	struct _CELL_##ELEMENT next;
} CELL_##ELEMENT;
typedef CELL_##ELEMENT* LISTE_##ELEMENT;
le hic, c'est qu'il reste des ## "parasites" après passage du préprocesseur

le ???.i
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
typedef unsigned char* puchar;
 
# 1 "list.c" 1
 
typedef struct _CELL_##puchar {
 puchar elt;
 struct _CELL_##puchar next;
} CELL_##puchar;
typedef *CELL LISTE_##puchar;
quelqu'un sait-il comment s'en débarasser ? (si c'est possible bien sûr )

je pense que le problème vient du typedef qui aurait du me permettre d'avoir des types d'ELEMENT avec des espaces et des étoiles