先来个简单的例子:
#include <stdio.h>
#include <stdarg.h>
int sum(int num,...);
int sum(int num,...)
{
int result = 0;
va_list argptr;
va_start(argptr, num);
while(num--)
{
//result += va_arg(argptr, int);
printf("%s ",va_arg(argptr, char *));
}
va_end(argptr);
return result;
}
int main()
{
sum(3, "hello", "world", "!"); // output: hello world !
//printf("%d/n", sum(4, 1, 2, 3 ,4));
//printf("%d/n", sum(2, 1, 2, 3 ,4));
return 0;
}
可变参数中个数不定可是传入的是一个参数也可以是多个;可变参数中的每个参数的类型可以不同,也可以相同;可变参数的每个参数并没有实际的名称与之相对应,用起来是很灵活。
可变参数是由宏实现的,但是由于硬件平台的不同&#