Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

question (idiote ?) sur le preprocesseur...

3 réponses
Avatar
Thierry B.
Bonsoir.

J'ai sous les yeux un superbe plat de nouille à la sauce #ifdef,
avec un peu de romarin dedans. Je le fait cuire avec mon gcc qui
marche au gpl, et j'aimerais bien savoir ce qui se passe dedans.

Existe-t-il un truc dans le genre:

#ifdef TRUC_MACHIN
printf("truc is %x\n", machin.truc\n");
#message "TRUC_MACHIN was here"
#endif

qui permette de tracer à la compilation ce qui est (plus ou moins)
généré, sans avoir à jeter un oeil désabusé sur le C intermédiaire ?

J'espère ne pas être le seul à avoir eu cette idée...

tTh.

--
+--------------------------------------------------------------------------+
| si FT déploie du GPON depuis le NRO vers le bas de l'immeuble, l'intérêt |
| d'utiliser le P2P en câblage vertical est anéanti. Et donc pour moi,... |
+----------------------------------------[ Really Cruel Modern World ]-----+

3 réponses

Avatar
Thierry B.
--{ Harpo a plopé ceci: }--

#ifdef TRUC_MACHIN
printf("truc is %xn", machin.trucn");
#message "TRUC_MACHIN was here"
#endif


Il y a #warning et #error


Oups, désolé, mais hier soir, je n'ai pas vraiment pensé
à greper "warning" pour afficher un message :)

Depuis C99 je crois.


Oké, merci. Bonne journée à tous les coredumpers.


--
{ SIGOGNE, "OUIIIN" },
/* Gives the process a child */
--{ f.m.b.l revisite la command kill }--


Avatar
Laurent Deniau
Harpo wrote:
Thierry B. wrote:

Bonsoir.

J'ai sous les yeux un superbe plat de nouille à la sauce #ifdef,
avec un peu de romarin dedans. Je le fait cuire avec mon gcc qui
marche au gpl, et j'aimerais bien savoir ce qui se passe dedans.


Gli spaghetti si mangiano con la sola forchetta.

Existe-t-il un truc dans le genre:

#ifdef TRUC_MACHIN
printf("truc is %xn", machin.trucn");
#message "TRUC_MACHIN was here"
#endif


Il y a #warning et #error
Depuis C99 je crois.


#error depuis C89. Pas de #warning a l'horizon.

a+, ld.

J'espère ne pas être le seul à avoir eu cette idée...


Tu as raison d'espérer.


un #warning et un #message seraient effectivement les bienvenus!

a+, ld.


Avatar
Antoine Leca
En news:, Thierry B. va escriure:
J'ai sous les yeux un superbe plat de nouille à la sauce #ifdef,
<couic>

Existe-t-il un truc dans le genre:
<couic>

qui permette de tracer à la compilation ce qui est (plus ou moins)
généré, sans avoir à jeter un oeil désabusé sur le C intermédiaire ?


Si tu ne veux pas regarder le source (même épuré), effectivement il faut
utiliser #error, #warning si cela existe, voire #include en remplacement,
avec $(CC) -M cela marche aussi même si le message d'erreur est inadéquat
;-)

Si regarder la sortie de cpp avec des trucs genre $(CC) -E >$$$.i est
pénible (ce que je peux comprendre), tu peux aussi regarder unifdef, un
utilitaire *BSD qui dépatouille bien les plats de nouilles. Et plus
généralement les "beautifiers" qui savent interpréter les #ifdef.
Attention, on utilise plus cpp (ou plus le même, ou plus les mêmes options),
donc tu peux avoir des erreurs subtiles qui se glissent, surtout si tu as
des fichiers inclus qui proviennent de plusieurs endroits...


Antoine