博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可变参数
阅读量:6623 次
发布时间:2019-06-25

本文共 740 字,大约阅读时间需要 2 分钟。

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

转载于:https://www.cnblogs.com/xiaodaxiaonao/p/7619878.html

你可能感兴趣的文章
如何修改远程桌面3389端口
查看>>
Anthos Config Management 产品设计分析
查看>>
我的友情链接
查看>>
Spark算子:RDD行动Action操作(3)–aggregate、fold、lookup
查看>>
UILabel总结
查看>>
java获取当前时间前一周、前一月、前一年的时间
查看>>
话说WEB开发之页面重绘和回流
查看>>
vuex之传递参数(五)
查看>>
xutils使用手册(一)——初始化
查看>>
using标识使用
查看>>
解决linux下不能上网
查看>>
nginx rewrite伪静态配置参数说明
查看>>
python学习笔记(15-18)
查看>>
【转】linux进程的内存使用解析
查看>>
我的友情链接
查看>>
Oracle 查询不区分大小写 (正则函数)
查看>>
T264接口说明
查看>>
SELinux介绍
查看>>
visual C++ 用 TextOut 输出单个字符
查看>>
Rsyslog实现Nginx日志统一收集
查看>>