我正在学习cd中的stdarg.h,我试图打印所有传递给函数的参数,但不知道有多少个参数,但是我还没有想出解决方案,在这发生过程中,无论发生什么我传递给strtest。 它总是打印0. 1. 2. 3.va_arg总是运行4次
void strtest(char *fmt, ...){
va_list argp;
int i = 0;
va_start(argp, fmt);
while(va_arg(argp, char*))
printf("%d\t", i++);
va_end(argp);
}
int main(int argc, char *argv[]){
strtest("s");
printf("\n");
return 0;
}
看到这个http://stackoverflow.com/questions/1688942/variable-arguments-in-c-how-to-get-values-with-a-generic-type的方式来做到这一点。我不确定这是否符合标准,但取决于环境使得OP能够工作。 – JJF
@JJF这个问题是关于参数类型,而不是参数的数量。那里有一个特定的答案,告诉你如何获得计数? – Barmar
查看带有va_start(ap,count)的部分; for(i = 0; i
JJF