Cześć, jest jakaś możliwość zamienienia inną instrukcją #ifdef _DEBUG #endif ale wyglądającą jak zwygła funkcja bez używania #define? Chcę osiągnąć mniej więcej taki efekt:
Debug(printf("Tylko w debug"));
Cześć, jest jakaś możliwość zamienienia inną instrukcją #ifdef _DEBUG #endif ale wyglądającą jak zwygła funkcja bez używania #define? Chcę osiągnąć mniej więcej taki efekt:
Debug(printf("Tylko w debug"));
Dlaczego nie chcesz używać preprocesora? Sterowanie kompilacją to jedno z niewielu zadań, do których faktycznie jest przeznaczony.
Podobne rzeczy robię czasem tak:
#define Debug(x) {x}
//#define Debug(x)
i w zależności od potrzeb zakomentowuję/odkomentowuję odpowiednią linijkę... Ale lepiej zrobić z ifdef
... Ewentualnie połączyć:
#ifdef _DEBUG
#define Debug(x) {x}
#else
#define Debug(x)
#endif
i potem możesz używać Debug
jak opisałeś wcześniej...
koszalek-opalek napisał(a):
Podobne rzeczy robię czasem tak:
#define Debug(x) {x}
//#define Debug(x)
i w zależności od potrzeb zakomentowuję/odkomentowuję odpowiednią linijkę... Ale lepiej zrobić z ifdef
... Ewentualnie połączyć:
#ifdef _DEBUG
#define Debug(x) {x}
#else
#define Debug(x)
#endif
i potem możesz używać Debug
jak opisałeś wcześniej...
#ifdef _DEBUG
#define Debug(x) do { x; } while(0)
#else
#define Debug(x) do {} while(0)
#endif
Żeby makro można było stosować razem z instrukcjami warunkowymi.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.