「DEBUG:」を引数の先頭に追加し、その引数をprintfに渡す関数マクロをCで実装しようとしています。
#define DBG(format, ...) printf("DEBUG: " #format "\n", __VA_ARGS__)
これにより、gccで次のエラーが発生します。
src/include/debug.h:4:70: error: expected expression before ‘)’ token
#define DBG(format, ...) printf("DEBUG: " #format "\n", __VA_ARGS__)
^
おそらく、フォーマットを文字列化し、変数引数をprintfに渡す必要がありますが、これまでのところ、このエラーを乗り越えることはできません。
編集
##
引数の文字列化と二重ハッシュ ( )をあきらめた後、次の__VA_ARGS__
エラーが発生しました。
src/lib/cmdlineutils.c: In function ‘version’:
src/lib/cmdlineutils.c:56:17: warning: ISO C99 requires rest arguments to be used [enabled by default]
DBG("version()");
引数の後にコンマを配置する必要がありますか?
DBG("version()",); // ?
参考までに、DBG() は次のようになります。
#define DBG(format, ...) printf("DEBUG: " format "\n", ##__VA_ARGS__)