это реальный макрос:VARIADIC макрос ожидается «)» перед числовой константы
#ifdef DEBUG
#define debug(funcname, format, ...) \
printf(BOLD UNDERLINED REVERSE \
"DEBUG IN " __FILE__ \
" LINE " __LINE__ ":" \
RESET UNDERLINED REVERSE \
"In " funcname \
RESET REVERSE format RESET, ##__VA_ARGS__)
#else
#define debug(funcname, format, ...)
#endif
Где все константу хорошо определены строковые константы. Я называю это что-то вроде:
char message[] = "Hello StackOverflow !\n";
debug("main()", "Message: %s\n", message);
Но я получаю сообщение
error: expected ‘)’ before numeric constant debug("main()", "Message: ", message);
Пойтинга на закрытии Parenthese.
Это странно, потому что я первый протестировал макрос, и теперь, когда проект продвинулся с командой он не работает ...
как раз для того чтобы помочь вам, предопределенное имя: '__func__' (примечание в нижнем регистре) вернет имя функции, поэтому вам не нужно жестко указывать имена функций в вызовы макросов – user3629249