Makra preprocesora #ifdef DEBUG

0

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"));
3

Dlaczego nie chcesz używać preprocesora? Sterowanie kompilacją to jedno z niewielu zadań, do których faktycznie jest przeznaczony.

2

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...

3
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.