【发布时间】:2021-11-29 20:03:44
【问题描述】:
我有一个带有类似 printf 的变量参数列表的函数,例如:
debugMsg(__FILE__, __LINE__, "failed with var %s = %d\n", var, val);
现在我需要一个包装函数,例如:
void debugMsgWrapper(const char* FileName, int LineNo, const char* FmtStr, ...)
{
// do some other things
DebugMsg(FileName, LineNo, FmtStr, ...);
}
当然,这不适用于指定为... 的参数列表,但我不知道如何将参数列表复制到被调用函数。我看了看void va_copy(va_list dest, va_list src);
但找不到如何使用它。
如何将可变参数列表提供给被调用函数?
【问题讨论】:
-
该帖子的答案的关键部分:“您不能将可变参数传递给可变参数函数。相反,您必须调用一个以 va_list 作为参数的函数。"
标签: c parameter-passing