Bonjour à tous,

Un petit post pour une question qui me parait bête mais je n'arrive pas à trouver de solution. J'aimerai, pour des soucis de compatibilité, définir une structure de deux façons différentes dans un .h, une quand je compile sous UNIX, une pour Linux.
Dans mon makefile généralement, j'utilise alternativement l'option -DCPU=UNIX et -DCPU=Linux suivant ma plateforme. Dans mes .c, je n'ai aucun problème mais là, dans un .h, cette façon de faire n'a pas l'air de marcher. Voici la solution que j'avais mise en place (et qui ne marche 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
#if (CPU == Linux)
typedef struct
{
    toto_UNSIGNED   label:8;	  /* 0-7   */
    toto_UNSIGNED   sdi:2;	  /* 9-10  */
    toto_UNSIGNED   data:19;	  /* 11-27 */
    toto_UNSIGNED   ssm:2;	  /* 29-30 */
    toto_UNSIGNED   parity:1;	  /* 31-31 */
} SWord;
#else
typedef struct
{
    toto_UNSIGNED  parity:1;    /* 31-31 */
    toto_UNSIGNED  ssm:2;       /* 29-30 */
    toto_UNSIGNED  data:19;     /* 11-27 */
    toto_UNSIGNED  sdi:2;       /* 9-10  */
    toto_UNSIGNED  label:8;     /* 0-7   */
} SWord; 
#endif
J'ai beau fouiller les tutos d'aide sur les directives de précompilation, je n'avance pas ... donc si j'ai raté un truc, je suis preneur !
PS : si possible je préfère éviter d'avoir à définir une variable d'environnement spécifique sur une seule des plateformes et faire un #if defined TITI mais si c'est la seule solution, je ferais avec.