Mam następujący fragment kodu:C++ kompilacja warunkowa
#ifdef DO_LOG
#define log(p) record(p)
#else
#define log(p)
#endif
void record(char *data){
.....
.....
}
Teraz jeśli zadzwonię log("hello world")
w moim kodu i DO_LOG
nie jest zdefiniowana, będzie linia zostać skompilowany, innymi słowy będzie to jeść pamięć dla ciągu "hello world"?
P.S. W programie jest wiele wywołań nagrywania i jest on wrażliwy na pamięć, więc czy istnieje inny sposób kompilacji warunkowej, który zależy tylko od #define DO_LOG
?
Nie powinieneś zaimplementować własnej biblioteki logowania. Jest ich dość. Oto, czego używam: http://www.templog.org. – sbi
@sbi Nie wiem. Napisałem swój własny i działa pięknie. To najlepszy sposób, aby dowiedzieć się, jak coś zrobić. :-) – Konrad
@Konrad: Tak też zrobiłem, ale ciężko jest być lepszym od zgromadzonej mądrości ustalonej biblioteki. – sbi