第1个回答 推荐于2016-12-02
主要是va_start(),va_end(), va_arg()函数的用法。具体的你可以去查相关的文档,这里我给一个简单的例子:arg_test()是一个带不确定参数的函数,具体的处理在args_process()里,处理过程是根据fmt里指出的“类型”,把参数一个个打印出来。
#include <stdio.h>
#include <stdarg.h>
void args_process(const char *fmt, va_list &va)
{
while (*fmt)
{
switch (*fmt)
{
case 's':
printf("s = %s\n", va_arg(va, const char *));
break;
case 'd':
printf("d = %d\n", va_arg(va, int));
break;
case 'f':
printf("g = %.2g\n", va_arg(va, double));
break;
default:
break;
}
fmt++;
}
}
void arg_test(const char *fmt, ...)
{
va_list va;
va_start(va, fmt);
args_process(fmt, va);
va_end(va);
}
int main()
{
arg_test("dfs", 2, 3.14, "hahah");
return 0;
}本回答被提问者采纳