前に、これは実際のマクロです:使用されているすべての定数は十分に定義されている可変個引数マクロ「)」数値定数
#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);
しかし、私は決算Parentheseのでメッセージ
error: expected ‘)’ before numeric constant debug("main()", "Message: ", message);
poitingを取得します。
私は最初のマクロをテストし、今のプロジェクトは、チームと進んでいること、それは動作しないため
" LINE " __LINE__ ":"
が構文的に無効に展開するのでそれは...
だけであなたを助けるために、事前に定義された名前: '__func__'(小文字に注意してください)は、関数名を返しますので、あなたは、マクロ呼び出し – user3629249