3

メッセージと可変引数を受け取り、それらをprintfのように出力するライブラリに関数があります。例:

printMe(const char *fmt,...);

この関数をラップしようとしています。パラメータの種類と数がわかりません。私はこのようにしようとしています:

printMeWrapper(const char *message,...)
{
    va_list argptr;
    va_start(argptr, message);
    printMe( message,argptr);
    va_end(argptr);
}

ただし、これは最初の引数のみを出力します。これを正しく行う方法について何か考えはありますか?

4

2 に答える 2

1

代わりにマクロを使用できます。

#define printMeWrapper(message, ...) \
  DoSmthBefore(); \
  printMe(message, __VA_ARGS__); \
  DoSmthAfter();
于 2013-02-13T13:14:43.310 に答える