Я пытаюсь написать макрос записи без накладных расходов в C.
Моя первая идея:
#define debug_print(...) \
{ \
printf(_LOG_FMT, _LOG_ARGS); \
printf(__VA_ARGS__); \
printf("\n"); \
}
Но проблема в том, что мне приходится трижды вызывать printf (накладные расходы).
Моя вторая идея:
#define _LOGFUNCTION(LEVEL, message, ...) \
printf(_LOG_FMT message "\n", _LOG_ARGS, __VA_ARGS__)
Но теперь я не могу передать эту простую строку для регистрации. Он будет жаловаться на ноль аргументов в VA_ARGS.
Есть ли способ исправить обе эти проблемы?
Спасибо большое за помощь!