Bonjour,
Lorsque je code; j'ai plus ou moins trois mode:
debug
release + trace (pour debugger la release )
release (pour clients - la plus legere possible)
Du coup dans le code (qui n'est pas tout de moi), je me trouve parfois avec:
methode 1
methode 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #ifdef __TRACE affiche( "Message pour debugger" ) #endif
methode 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #ifdef __TRACE #define affiche( x ) affiche(x) #else #define affiche( x ) #endif // et dans le code affiche ( "Message pour debugger" )
Je trouve les deux premières methodes lourdes et je prefere la 3eme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class trace{ #ifdef __TRACE inline affiche(x) {affiche(x); }; #else inline affiche(x) { }; #endif } // Et dans mon code pTrace->affiche( "Message pour debugger" );
Mais je me demandai, ma fonction affiche() utilise plus de parametre que dans l'exemple, du coup meme si je compile en release sans __TRACE, est-ce que la pile de paramètre ne va pas être intégré dans le code final?
Le simple fait d'utiliser mon pointeur et de faire appel va generer du code, n'est-il pas?
Enfin sinon comment faites vous vous ?
Merci
Partager