Comment puis-je visualiser la sortie produite par le C pré-processeur, avant sa conversion en fichier objet ?
Je veux voir ce que les définitions de MACRO font à mon code.
Comment puis-je visualiser la sortie produite par le C pré-processeur, avant sa conversion en fichier objet ?
Je veux voir ce que les définitions de MACRO font à mon code.
gcc -E file.c
o
g++ -E file.cpp
le fera pour vous. L'option -E force le compilateur à s'arrêter après la phase de prétraitement, en envoyant tout ce qu'il a pour le moment sur la sortie standard.
Note : Vous devez certainement avoir des directives #include. Les fichiers inclus sont également prétraités, et vous risquez d'obtenir beaucoup de résultats.
Pour Visual C++, le commutateur est /E qui affiche la sortie du préprocesseur à l'écran.
Vous devrez peut-être aussi préciser -x c
si le fichier que vous traitez n'a pas une extension c standard
Pour le GCC,
gcc -E -dM file.c
o
g++ -E -dM file.cpp
devrait faire l'affaire. -dM, comme le manuel du préprocesseur GNU le met devrait générer une liste de directives '#define' pour toutes les macros définies pendant l'exécution du préprocesseur, y compris les macros prédéfinies.
Si vous utilisez CLion de Jetbrains, vous pouvez utiliser l'action "clangd : Prétraiter l'UT actuelle"
Alors frappez shift
shift
et commencer à taper clangd...
Il est préférable de l'attribuer à un raccourci pour une réutilisation plus simple dans les préférences->keymap :
Un grand bravo à marcosbento
PS : TU signifie "unité de traduction" (voir ici). Unité de traduction LLVM )
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.