为了学习变参函数,我写了一个demo:
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
int foo(int n, int m, ...);
int
main (int argc, char *argv[])
{
int n = 10;
int m = 15;
int p = 20;
//foo (n, m);
foo(n, m, 20);
return EXIT_SUCCESS;
}
int foo (int n, int m, ...)
{
va_list ap;
int p;
char *str;
va_start (ap, m);
p = va_arg (ap, int);
n = m + p;
printf ("%d.\n", n);
va_end (ap);
return 0;
}
如果它只有两个参数,我想知道如何处理该函数。(对于这个演示,如果只有n
and m
,运行后foo
,我想得到结果:n = n+m
。)