Ho il seguente frammento di codice:C++ compilazione condizionale
#ifdef DO_LOG
#define log(p) record(p)
#else
#define log(p)
#endif
void record(char *data){
.....
.....
}
Ora, se io chiamo log("hello world")
nel mio codice e DO_LOG
non è definito, sarà la linea di essere compilati, in altre parole si è mangiare la memoria per la stringa "ciao mondo"?
P.S. Ci sono molte chiamate record nel programma ed è sensibile alla memoria, quindi esiste un altro modo per compilare condizionatamente in modo che dipenda solo dallo #define DO_LOG
?
Non è necessario implementare la propria libreria di registrazione. Ce ne sono abbastanza là fuori. Ecco cosa sto usando: http://www.templog.org. – sbi
@sbi non lo so. Ho scritto il mio e funziona magnificamente. È il modo migliore per imparare come fare qualcosa. :-) – Konrad
@Konrad: L'ho fatto anche io, ma è difficile essere migliori della saggezza accumulata da una biblioteca consolidata. – sbi