C++ 如何将省略运算符得到的参数传递给其他函数?
在这段代码中,我尝试将参数从省略号传递到C++ 如何将省略运算符得到的参数传递给其他函数?,c++,printf,ellipsis,C++,Printf,Ellipsis,在这段代码中,我尝试将参数从省略号传递到printf。它编译但打印垃圾,而不是78。正确的方法是什么?两个问题: 首先,您不需要初始化vl,而是使用它。以后别忘了用 另一个问题是,printf不接受va_列表参数。用这个 首先初始化vl va_启动(vl,1)//参数数量=1 然后从中取出int printf(格式,va_arg(vl,int))您需要执行以下操作: void myPrintf(const char* format, ...) { // some code va_
printf
。它编译但打印垃圾,而不是78。正确的方法是什么?两个问题:
vl
,而是使用它。以后别忘了用printf
不接受va_列表
参数。用这个首先初始化
vl
va_启动(vl,1)//参数数量=1
然后从中取出int
printf(格式,va_arg(vl,int))代码>您需要执行以下操作:
void myPrintf(const char* format, ...) {
// some code
va_list vl;
printf(format, vl);
}
int main() {
myPrintf("%d\n", 78);
}
请注意使用vprintf
而不是printf
,因为vl
不是初始值。如何初始化vl我不知道参数的计数。我应该把%的符号算进去吗format@Ashot查看我的最新答案,并点击参考链接。
void myPrintf(const char *format, ...) {
va_list vl;
va_start(vl, format);
vprintf(format, vl);
va_end(vl);
}