如何编写带不定参数个数的函数

G++编译器下如何编写带不定参数个数的函数?
能否再详细一些?

第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;
}本回答被提问者采纳
相似回答