Witam
Zamiast wywoływac za każdym razem:
#ifdef PHYSIC_DEBUG
if(mFile)
fprintf(mFile, "mV = %f %f %f\n", mV.x, mV.y, mV.z);
#endif
chciałbym wywoływać po prostu jakąś jedną funkcję a wszystko byłoby opakowane w niej. Jak coś takiego zrobić?
Jeśli wywołanie wygląda za każdym razem identycznie:
#ifdef PHYSIC_DEBUG
#define LOG_DEBUG do \
{ \
if(mFile) \
fprintf(mFile, "mV = %f %f %f\n", mV.x, mV.y, mV.z); \
} while (0)
#else
#define LOG_DEBUG do {} while (0)
#endif
Przykład wywołania:
LOG_DEBUG;
W przeciwnym przypadku:
#ifdef PHYSIC_DEBUG
#define LOG_DEBUG(file, ...) do \
{ \
if(file) \
fprintf(file, __VA_ARGS__); \
} while (0)
#else
#define LOG_DEBUG(...) do {} while (0)
#endif
Przykład wywołania:
LOG_DEBUG(anyFile, "anyValue = %f %f %f\n", anyValue.x, anyValue.y, anyValue.z);
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.
do
?