Je continue ici la discussion sur le preprocesseur commencé ici :
topics/103139-le-compilateur-gtc-est-il-mauvais/15#427
J'ai l'impression que (sur la version oncalc du-moins, j'ai pas testé la version PC) le preprocesseur s'emmèle les pinceaux dès qu'il commence a y avoir trop de symboles/constantes définis et ce, sur plusieurs fichiers source.
Je m'explique :
Lorsque j'essai de faire de la compilation conditionnelle de multiples projets en meme temps j'obtient des trucs bizares.
J'écris dans un fichier :
enum { PROJET_A = 1, PROJET_B = 2};
#define PROJET_ACTIF PROJET_A
Dans un autre :
#if PROJET_ACTIF == PROJET_A
//etc...
#endif
#if PROJET_ACTIF == PROJET_B
//etc...
#endif
Encore dans un autre :
void Test(void )
{
#if PROJET_ACTIF == PROJET_A
printf("Projet_A");
#endif
#if PROJET_ACTIF == PROJET_B
printf("Projet_B");
#endif
}
Bon, ce n'est qu'un exemple, mais actuellement j'ai un fichier qui doit contenir la déclaration d'une bonne centaine de constantes/symboles divers et variés qui lui-meme inclu d'autres fichiers de ce genre (joli bordel en vue quoi

)
Le probleme, c'est que lorsque je compile ca, en mettant par exemple "#define PROJET_ACTIF PROJET_B", normalement je devrais m'attendre (sauf grosse erreur de ma part) a avoir au niveau de la fonction Test(), QUE printf("Projet_B"); de compilé dans cette fonction non ?
Ben c'est pas le cas puisqu'il me compile printf("Projet_B"); ET printf("Projet_A");
J'arrive pas a savoir si c'est parce que j'ai trop déclaré de constantes/symboles ou si c'est parce que c'est réparti sur plusieurs fichiers...
Auriez-vous une idée de là où ca peut venir ? Et si jamais le probleme est ma maniere de proceder merci de me le dire
Edit > Corrections.
Ajout > Quand j'aurai un peu de temps j'irai me plonger dans le preprocesseur de GTC mais bon...vu mon niveau actuel je risque de pas trouver grand chose