これはいくつかの異なる味で尋ねられました。しかし、私はまだそれを働かせることはできません。ここに私の関数定義があります。ncursesへのフォワードVariadic引数リスト
void
ncurses_add_line(const char *fmt, ...)
{
if (ncurses_window) {
va_list args;
va_start(args, fmt);
printw(fmt, args);
printw("\n");
va_end(args);
}
}
私はこの機能をコールすると、私の機能からバリード的な印刷物には気が散ってしまいます。私がprintw
に直接電話すると、それはすべて動作します。たとえば、のようなncurses_add_line
を呼び出すと、値はvarに格納されません。しかし、私がprintw("Hello %d", var)
を呼び出すと、varの値が "Hello"の隣に表示され、var == 1なら "Hello 1"がprintw
と表示されますが、これはncurses_add_line
の場合には当てはまりません。
変更する必要があるのは何ですか?
これをラップする理由は、私のヘッダーファイルに、私のcファイルだけを含めたくないからです。