码迷,mamicode.com
首页 > 其他好文 > 详细

可变参数

时间:2017-10-02 12:18:44      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:函数   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");
}

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头文件中也提供这样的功能

可变参数

标签:函数   c89   i++   set   信息   ext   void   stand   end   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!