标签:函数 c89 i++ set 信息 ext void stand end
include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
int add(int length, ...) {//有很多宏,可以处理可变参数的函数
va_list l_p = 0;//定义指针,用于存储地址,不能加星号*
va_start(l_p, length);//从这里开始读取参数,读取length个参数,并把地址放在l_p
int l_sum = 0;
for (size_t i = 0; i < length; i++)
{
l_sum = l_sum + va_arg(l_p, int);//每搜索一个参数并且加int
}
return l_sum;
}
void main() {
add(5, 1, 2, 3, 4, 5);
printf("%d\n", add(5, 1, 2, 3, 4, 5));
system("pause");
}
类型名称
|
描述
|
相容
|
va_list
|
用来保存宏va_arg与宏va_end所需信息
|
C89
|
巨集名称
|
描述
|
相容
|
va_start
|
使va_list指向起始的参数
|
C89
|
va_arg
|
检索参数
|
C89
|
va_end
|
释放va_list
|
C89
|
va_copy
|
拷贝va_list的内容
|
C99
|
stdarg.h是C语言中C标准函数库的头文件,stdarg是由standard(标准) arguments(参数)简化而来,主要目的为让函数能够接收可变参数。C++的cstdarg头文件中也提供这样的功能
标签:函数 c89 i++ set 信息 ext void stand end
原文地址:http://www.cnblogs.com/xiaodaxiaonao/p/7619878.html