Je travaille sur de nombreux fichiers C-Sourcecode contenant de nombreux pré-processeurs Ces affirmations recherchent souvent un souvent, ces affirmations de préprocesseur sont situées dans des déclarations C-Si, ce qui rend le code SourceCode presque illisible pour Beeings humains. P> Le My idée désormais est d'avoir un outil qui vérifie ces paramètres de commutateur pour le Au-dessus de l'exemple, j'aimerais obtenir un nouveau fichier .C qui contient uniquement p> supposé le Y a-t-il des outils (Freeware || Low-cost) disponible ce travail?
Ou est-ce que je dois écrire mon propre analyseur de préprocesseur pour cela? P> (Il est impossible pour moi d'exécuter le compilateur à l'aide d'un paramètre spécial qui fait ce travail, car notre société crée le C-SourceCode, une autre La société est compilant.) p> Merci pour tout indice! p> Cordialement P> Thomas p> P> #if code>,
#elSeif code> et
#else code> instructions.
#define code>, par exemple p>
#define code> S utilisé pour ce pré-processeur
#if code> Les instructions sont définies dans un fichier supplémentaire. P>
#define code> d et ne copie que les lignes de Sourcecode qui s'appliquent à l'aide du numéro actuel définit / commutateur. P>
#define code> de
switch_testmode code> N'est-ce pas égal à
Switch_TestModeon code>. p>
4 Réponses :
Vous pouvez exécuter le compilateur GNU à l'aide de la ligne de commande d'option -E pour faire le prétraitement. P>
http://gcc.gnu.org/onlinedocs/gcc/preprocessor- Options.html p>
Ce n'est pas exactement ce que l'OP demande car cela entraînera également une évaluation d'autres directives de prétraitement et des invocations macro.
OP a dit: "Les lignes de SourceCode qui s'appliquent à l'aide du numéro actuel définissent / commutateurs". S'il voulait dire un ensemble partiel, il aurait pu le dire. D'accord, la réponse du Sunifdef est meilleure s'il ne veut que supprimer certains i> de conditionnels.
Vous pouvez utiliser UNIFDEF. P>
Unifdef est disponible chez http://dotat.at/prog/unifdef/ . p>
Cet outil a un très beau style de codage et une compilation extrêmement facile (pas de voiture, juste un simple maquillage, ainsi qu'une solution pour Visual Studio sous Windows). Sa simplicité m'a charmé ...
Peu de choses à considérer / à explorer: si votre client signale les numéros de ligne d'erreur de compilation, ils seront plus difficiles à mapper sur vos sources d'origine. Les préprocesseurs mettent généralement une balise dans leur sortie afin que le compilateur puisse fournir des numéros de ligne utiles, mais je ne suis pas au courant de celui-ci normalisé entre les compilateurs afin que vous ne puissiez pas connaître votre production suffisamment pour les compilateurs de vos clients.