dies ist das eigentliche Makro:Variadische Makro erwartet ‚)‘ vor numerische Konstante
#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
Wo alle die verwendete Konstante sind gut String-Konstanten definiert. Ich nenne es mit so etwas wie:
char message[] = "Hello StackOverflow !\n";
debug("main()", "Message: %s\n", message);
Aber ich bekomme die Meldung
error: expected ‘)’ before numeric constant debug("main()", "Message: ", message);
bei dem Abschluss parenthese poiting.
Es ist komisch, weil ich zum ersten Mal das Makro getestet, und jetzt, dass das Projekt mit dem Team vorangeschritten ist es nicht funktioniert ...
nur um Ihnen zu helfen, der vordefinierte Name: '__func__' (beachten Sie Kleinbuchstaben) wird den Funktionsnamen zurückgeben, so müssen Sie nicht die Funktionsnamen in die Makroaufrufe fest codieren – user3629249