J'ai un projet composé de plusieurs modules sources et fichiers d'en-tête. Deux d'entre eux (s1.c
, s2.c
) #include
le même fichier d'en-tête (s3.h
). Ce fichier d'en-tête contient construction de compilation conditionnelle, basée sur une macro externe définie:Comment mettre en évidence un fichier d'en-tête commun basé sur différents contextes de module source?
#ifdef ExtMacro
#define IntMacro 1
#else
#define IntMacro 2
#endif
Maintenant, ExtMacro
est défini dans s1.c
avant la #include "s3.h"
, mais pas défini dans s2.c
.
Lors de l'ouverture du fichier d'en-tête dans l'éditeur Eclipse, le code est analysé pour la mise en évidence de la syntaxe et les parties exclues de la construction sont surlignées en arrière-plan gris.
Comme vous pouvez le voir, la partie exclue de s3.h
dépend du contexte de son inclusion. Mais Eclipse choisit l'un des modules inclus dans le but de mettre en évidence le code d'en-tête.
Existe-t-il un moyen de demander à Eclipse de mettre en évidence le code d'en-tête dans un contexte ou un autre?
C'est un problème lié à l'indexeur. Essayez de déconner avec ses paramètres dans * Project Properties-> C/C++ General-> Indexer *. Mais je ne serais pas optimiste à ce sujet. –