ich die folgende Code-Schnipsel haben:C++ bedingte Kompilierung
#ifdef DO_LOG
#define log(p) record(p)
#else
#define log(p)
#endif
void record(char *data){
.....
.....
}
Nun, wenn ich log("hello world")
in meinem Code aufrufen und DO_LOG
nicht definiert ist, wird die Linie, wird mit anderen Worten kompiliert werden essen sie den Speicher bis für die Zeichenfolge "Hallo Welt"?
P.S. Es gibt eine Menge von Aufrufen in dem Programm und es ist Speicher empfindlich, gibt es also eine andere Möglichkeit, kompiliert, so dass es nur auf die #define DO_LOG
?
Sie sollten keine eigene Protokollierungsbibliothek implementieren. Da draußen gibt es genug davon. Hier ist, was ich benutze: http://www.templog.org. – sbi
@sbi Ich weiß es nicht. Ich habe mein eigenes geschrieben und es funktioniert wunderbar. Es ist der beste Weg zu lernen, etwas zu tun. :-) – Konrad
@Konrad: Ich tat es auch, aber es ist schwer, besser zu sein als die angesammelte Weisheit einer etablierten Bibliothek. – sbi