Préprocesseur C - C - Programmation
Marsh Posté le 26-11-2008 à 13:40:59
Il faut faire l'essai, parce qu'il existe quelques variantes sur le traitement des defines selon les compilateurs.
Mais d'une manière générale, j'évite les opérations trop particulières comme celle-là parce que cela risque de
marcher avec un environnement de développement, mais pas avec un autre. En plus, ces bidouilles ne sont jamais très lisibles, ni très faciles à maintenir. Et comme il existe des moyens de programmer proprement sans cela, autant le faire.
Marsh Posté le 27-11-2008 à 17:56:39
freewol a écrit : Bonjour,
|
Oui c'est possible, ça ne pose aucun problème.
freewol a écrit : t ainsi pouvoir générer des define différents de cette manière :
|
Là par contre j'ai du mal à te suivre. Ta deuxième inclusion va lever un warning, puisqu'elle va redéfinir la macro NAME. D'autre part je ne comprend pas ton commentaire "va définir toto_foo et toto_bar". L'inclusion ne va rien définir du tout, si ce n'est la macro NAME. Que veux-tu dire par "va définir toto_foo et toto_bar" ?
Marsh Posté le 28-11-2008 à 15:18:13
Bonjour,
en gros j'espérais ce comportement :
#define TOTO 1 |
entraine que
#if TOTO == 1 |
devient
|
et donc
#define NAME(foo) 5 |
devient
#define toto_foo 5 |
Désolé si ça n'est pas très clair, surtout que ce n'est probablement pas possible.
Marsh Posté le 26-11-2008 à 11:50:08
Bonjour,
j'aimerais savoir s'il est possible de géréner des define à partir d'autres define.
Par exemple dans un fichier toto.h :
#if TOTO == 1
#define NAME(a) toto_name_##a
#else
#define NAME(a) name_##a
#endif
#define NAME(foo) 5
#define NAME(bar) 6
Et ainsi pouvoir générer des define différents de cette manière :
#define TOTO 1
#include "toto.h" // va définir toto_foo et toto_bar
#undef TOTO
#include "toto.h" // va définir foo et bar
Merci d'avance
Message édité par freewol le 26-11-2008 à 11:50:53