C语言中如何获取函数可变参数的个数?
比如我现在有个函数voidprint(char*value,...)代码为:#include<stdio.h>#include<stdarg.h>voidprint(ch...
比如我现在有个函数void print(char* value,...)
代码为:
#include <stdio.h>
#include <stdarg.h>
void print(char* value,...)
{
printf(value);
va_list val;
va_start(val,value);
va_arg(val,char*);
printf(val);
va_end(val);
}
编译后输出不正确
为什么? 展开
代码为:
#include <stdio.h>
#include <stdarg.h>
void print(char* value,...)
{
printf(value);
va_list val;
va_start(val,value);
va_arg(val,char*);
printf(val);
va_end(val);
}
编译后输出不正确
为什么? 展开
1个回答
展开全部
追问
我就是想问如何知道所有参数都获取了没有,只获取一次不是只能获取到第一个可变参数吗
追答
是的,印象中是没法知道参数个数的
只能靠约定
,像printf,是靠格式字符串确认个数
你可以多传一个参数,表示个数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询