首页 > 其他 > 详细

可变参数

时间:2017-10-02 12:14:43      阅读:207      评论:0      收藏:0      [点我收藏+]

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");
}

stdarg.h数据类型

类型名称
描述
相容
va_list
用来保存宏va_arg与宏va_end所需信息
C89

stdarg.h宏

巨集名称
描述
相容
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头文件中也提供这样的功能

可变参数

原文:http://www.cnblogs.com/xiaodaxiaonao/p/7619878.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!