Executer une partie de code ou une autre - C++ - Programmation
Marsh Posté le 23-07-2007 à 10:27:35
http://casteyde.christian.free.fr/ [...] c1039.html
Google tips : c++ structure de controle if
Marsh Posté le 23-07-2007 à 10:55:57
Une autre solution, peut être plus dans l'esprit de ce que tu voulais faire initialement :
Code :
|
Ainsi, le paramètre variable est comparée à partir de sa valeur définie dans le fichier, dès la compilation.
Marsh Posté le 23-07-2007 à 11:01:35
ReplyMarsh Posté le 23-07-2007 à 12:28:54
bjone a écrit : heu vaut mieux donner le contexte, voir si y'a pas une solution plus propre.... |
Merci nathan_g, c'est exactement ça que je cherchais.
Voici le contexte. Il s'agit d'un serveur qui peut être compilé soit sous la forme d'un serveur HTTP, soit sous la forme d'un serveur SIP (communication VoIP). Vu que je me base sur un serveur HTTP pour y construire le serveur SIP, je souhaite garder en commun aux deux la plus grande partie du code, et mettre des #ifdef / #endif pour les parties distinctes.
Ainsi, par exemple:
dans le header :
Code :
|
dans le source :
Code :
|
Je ne suis pas sur que ce soit la solution la plus propre, mais c'est un début.
Merci encore
Marsh Posté le 23-07-2007 à 12:58:55
il faudrait avoir une vision un peu globale.
mais non ça me parait pas propre.
déjà tes variables et ports doivent être configurables, et si tu as une partie tranport différente, il vaudrait mieux passer par un objet qui s'occupe de ça, avec des primitives qui vont bien.
avec par exemple la possibilitée de faire les "deux".
style:
Code :
|
enfin voilà, les trucs figés, c'est très vilain: si tu as plusieurs modes de communication, il vaut mieux réfléchir à créer un objet d'abstraction avec les primitives minimalistes et le masquage de l'implémentation de la communication, et ainsi de pouvoir brasser ce que tu veux avec des communication multiples de natures différentes.
bon c'est une idée.
après, si tu n'as pas encore la vision des objets clés et de leurs primitives (le choix de bonnes primitives est la clé des perfs et de la souplesse de manière simultannée), tu peux bricoler encore un peu ton truc avec tes compilations conditionnelles, mais si tu pousses ton projet sur un stade avancé ça va être une usine à gaz a maintenir.
Marsh Posté le 23-07-2007 à 13:42:02
Merci bjone pour ton explication. Je vois bien de quoi tu parles. Et en effet, je n'ai pas de vision assez globale sur le programme de base (basé sur HTTP) pour encapsuler tout ça en classes, surtout que ce programme de base n'est pas du tout programmé comme tel.
Mais c'était une idée intéressante je te l'accorde. Merci bien.
Pour continuer dans mon contexte, les protocoles HTTP et SIP sont vraiment similaire (le protocole SIP est basé sur HTTP), donc je me retrouve à effectuer quelques changements. Mon but n'est pas non plus de réaliser une application *propre* maintenant, mais bel et bien de réaliser un prototype en SIP qui fasse à peu prêt comme celui en HTTP.
Bon je sais pas si j'ai été clair, mais je pense m'en sortir avec les #def ...
Marsh Posté le 23-07-2007 à 10:20:20
Salut,
Je souhaiterais que soit executé une partie de code ou bien une autre partie de code en fonction d'une variable initialisée en début de fichier .cpp
exemple:
si var = TRAITEMENT_1, executer la partie de code n°1
si var = TRAITEMENT_2, executer la partie de code n°2
Je crois que c'est faisable en utilisant les balises #define, mais je vois pas comment.
Merci d'avance.