/* va_arg example */
#include <stdio.h>
#include <stdarg.h>
void PrintLines (char* first, ...)
{
char* str;
va_list vl;
str=first;
va_start(vl,first);
do {
str=va_arg(vl,char*);
if
printf ("%s\n",str);
} while (str!=NULL);
va_end(vl);
}
int main()
{
PrintLines ("First","Second","Third","Fourth",NULL);
return 0;
}
我们可以调用PrintLines
这样的PrintLines("First","Second","Third",6,NULL);
函数,它的整数作为变量参数列表的一部分。如果是的话,请解释如何做到这一点?可变长度参数列表
您将代码标记为'C++',但代码本身纯粹为'C'。这里的语言确实很重要,因为使用'C++'你最好使用可变参数模板。 – Lol4t0
你可以但事情是你用char *类型调用va_arg,所以它会将6解释为指向字符(或字符串)的指针,当你用%s做printf时会给你一些问题。为什么不传递字符串文字“6”? –
@ Lol4t0:在编写C++时,使用C中不存在的功能不是强制性的。感谢您不要删除C++标签。 –